MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

रिकॉर्ड्स को इस तरह से सॉर्ट करना ताकि केवल एक आईडी से मेल खाने वाले रिकॉर्ड पहले आए?

मुझे नहीं लगता कि ऐसा करने का कोई सीधा तरीका है, यदि आप वास्तव में चाहते हैं तो $cond आज़माएं विशिष्ट क्षेत्र पर स्थिति की जांच करने के लिए ऑपरेटर,

  • नया फ़ील्ड जोड़ें matchResult $project . में यह createdBy . की जांच करेगा रिटर्न 1 से मेल खा रहा है अन्यथा 0,
  • $sort matchResult . द्वारा अवरोही क्रम में
const [messages, messageCount] = await Promise.all([
    MessageModel.aggregate([
        { $match: params },
        {
            $project: {
                ...filterObject,
                matchResult: {
                    $cond: [
                      { $eq: ["$createdBy", ObjectId("abcff9ef71fa048cea3c8a97")] },
                      1,
                      0
                    ]
                }
            }
        },
        { $sort: { matchResult: -1 } },
        { $skip: ctx.paginate.skip },
        { $limit: ctx.query.limit }
    ]),
    MessageModel.countDocuments(params),
]);

खेल का मैदान

दूसरा विकल्प है $regexMatch MongoDB v4.2 से शुरू होने वाला एग्रीगेशन ऑपरेटर,

खेल का मैदान




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मोंगोस में एम्बेडेड दस्तावेज़ में किसी सरणी की अंतिम वस्तु को कैसे पुनर्प्राप्त करें?

  2. JSON दस्तावेज़ डेटाबेस में कुंजियों की लागत (मोंगोडब, इलास्टिक्स खोज)

  3. मोंगोडीबी को लिखने के लिए जेसन स्ट्रिंग को बीएसओएन दस्तावेज़ में कैसे मार्शल करें?

  4. जावास्क्रिप्ट का उपयोग करके Azure फ़ंक्शंस के साथ डेटाबेस कनेक्शन का पुन:उपयोग करना

  5. पांडा के साथ mongoDB में नए फ़ील्ड (कॉलम) सम्मिलित करना