एक वर्चुअल फ़ील्ड बनाएँ जो उन प्रविष्टियों के लिए एक मान का प्रतिनिधित्व करता है जिन्हें सूची के शीर्ष पर दिखाया जाना चाहिए, फिर उस फ़ील्ड के आधार पर प्रविष्टियों को सॉर्ट करें। आप $addFields
का इस्तेमाल कर सकते हैं
और $cond
इसे पूरा करने के लिए ऑपरेटरों।
कार्यान्वयन कुछ इस तरह होगा:
// ...
{
"$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,
},
},
// ...
कृपया ध्यान दें कि $addField
केवल MongoDB 3.4 और आगे में काम करते हैं। स्निपेट कोड में भी त्रुटियां हो सकती हैं।