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

$in के साथ MongoDB में परिणामों का क्रम?

सामान्य तौर पर:यदि आप बिना किसी क्रमबद्ध क्रम के खोज कर रहे हैं, तो परिणामों की कोई गारंटी नहीं है।

इसके अतिरिक्त, किसी सरणी के आधार पर छाँटना संभव नहीं है (इससे भी कम यदि आप किसी सरणी को वर्णित के अनुसार क्रमबद्ध करना चाहते हैं)। एक सॉर्ट() आपके परिणाम दस्तावेज़ों में किसी फ़ील्ड के आधार पर आरोही या अवरोही क्रम निर्धारित करने के लिए तार्किक तुलना का उपयोग करता है।

आपको अपने स्वयं के एप्लिकेशन कोड में किसी भी वांछित कस्टम सॉर्टिंग तर्क को लागू करना होगा।

नए एग्रीगेशन फ्रेमवर्क का लाभ उठाना एक उपयोगी तरीका हो सकता है। MongoDB 2.2 में .. विशेष रूप से, $unwind की क्षमता दस्तावेज़ों की एक धारा में एक सरणी।

उदाहरण के लिए, परीक्षण डेटा को इस रूप में सेट करना:

{ "_id" : ObjectId("504ac93fb50571321b2f932a"), "a" : [ 1, 2, 4 ] }
{ "_id" : ObjectId("504ac946b50571321b2f932b"), "a" : [ 5, 4, 9 ] }
{ "_id" : ObjectId("504ac94eb50571321b2f932c"), "a" : [ 2, 1, 3 ] }
{ "_id" : ObjectId("504ac954b50571321b2f932d"), "a" : [ 7, 3, 9 ] }

एक $in [2,3] पर खोज करने से मेल खाने वाले दस्तावेज़ प्राप्त होंगे:

> db.matches.find({'a': { $in: [2,3]}})
{ "_id" : ObjectId("504ac93fb50571321b2f932a"), "a" : [ 1, 2, 4 ] }
{ "_id" : ObjectId("504ac94eb50571321b2f932c"), "a" : [ 2, 1, 3 ] }
{ "_id" : ObjectId("504ac954b50571321b2f932d"), "a" : [ 7, 3, 9 ] }

एकत्रीकरण ढांचे के साथ आप $match . कर सकते हैं एक ही दस्तावेज़ और फिर कुछ बुनियादी छँटाई प्राप्त करने के लिए परिणामों में हेरफेर करें:$unwind सरणियाँ, $sort उन्हें, और फिर $group ये वापस एक परिणाम में:

db.matches.aggregate(
  { $match : {
       a: { $in: [2,3] }
  }},
  { $unwind : "$a" },
  { $sort: {
      "a": -1
  }},
  { $group : {
      _id: '$_id',
      a: { $addToSet: "$a" }
  }}
)

तो इस उदाहरण में, मिलान सरणियों वाले दस्तावेज़ अब सरणी मानों के लिए आरोही क्रम में क्रमबद्ध हैं:

{
    "result" : [
        {
            "_id" : ObjectId("504ac94eb50571321b2f932c"),
            "a" : [ 1, 2, 3]
        },
        {
            "_id" : ObjectId("504ac93fb50571321b2f932a"),
            "a" : [ 1, 2, 4 ]
        },
        {
            "_id" : ObjectId("504ac954b50571321b2f932d"),
            "a" : [ 3, 7, 9 ]
        }
    ],
    "ok" : 1
}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मोंगो:मैच कुल क्वेरी में तारीखों पर ध्यान नहीं दिया जा रहा है

  2. MongoDb सीमित डेटा के साथ $lookup एकत्रीकरण का पोस्ट स्वरूपण

  3. MongoDB से मान पुनर्प्राप्त करते समय DBObject को Java ऑब्जेक्ट में कनवर्ट करना

  4. नेवला - ObjectId की एक सरणी पर पॉप्युलेट का उपयोग करना

  5. स्वचालित डेटाबेस कॉन्फ़िगरेशन जाँच