Erstellen Sie ein virtuelles Feld, das einen Wert für die Einträge darstellt, die oben in der Liste angezeigt werden sollen, und sortieren Sie dann die Einträge basierend auf diesem Feld. Sie können $addFields
verwenden
und $cond
Betreiber, um dies zu erreichen.
Die Implementierung würde in etwa so aussehen:
// ...
{
"$addFields": {
"isFeaturedSort": {
"$cond": {
"if": {
"$and": {
"publishDate": {
"$gte": ISODate("2019-03-14T00:00:00.000Z"),
},
"$eq": ["isFeatured", true],
},
},
"then": 1,
"else": 0,
},
},
},
},
{
"$sort": {
"isFeaturedSort": -1, // changed
"refreshes.refreshAt": -1,
"publishDate": -1,
"_id": -1,
},
},
// ...
Bitte beachten Sie das $addField
funktionieren nur in MongoDB 3.4 und höher. Auch der Snippets-Code kann Fehler enthalten.