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

आप MongoDB प्रोजेक्शन एग्रीगेशन में किसी विशिष्ट सरणी आइटम का उपयोग कैसे करते हैं?

यह हासिल करने में आपकी मदद करने वाली सुविधा अभी उपलब्ध नहीं है। हालांकि, एक नया एग्रीगेशन ऑपरेटर होगा जो किसी दिए गए इंडेक्स के लिए ऐरे एलिमेंट देता है। नई अभिव्यक्ति को $arrayElemAt . कहा जाता है

नए एकत्रीकरण ऑपरेटर का उपयोग करें जो MongoDB संस्करणों के लिए उपलब्ध है 3.2.X और अधिक, यह किसी दिए गए अनुक्रमणिका के लिए एक सरणी तत्व देता है। नए एक्सप्रेशन को $arrayElemAt . यह दो तर्क, एक सरणी और एक अनुक्रमणिका लेता है और सरणी में दिए गए अनुक्रमणिका पर तत्व देता है। नकारात्मक सूचकांकों को सरणी के पीछे से अनुक्रमित के रूप में स्वीकार किया जाता है। यदि अनुक्रमणिका सीमा से बाहर है, तो यह अनुपलब्ध मान लौटाता है, जिसका अर्थ है कि फ़ील्ड आउटपुट में मौजूद नहीं होगा:

var pipeline = [    
    { $match : {"geo" : {$ne: null}}},
    {
        $project: {
            _id: "$id_str", 
            lat: { $arrayElemAt: ['$geo.coordinates', 0] },
            lon: { $arrayElemAt: ['$geo.coordinates', 1] }
        }
    }
];

अभी के लिए एक समाधान के रूप में (यह मानते हुए कि निर्देशांक सरणी में किसी भी समय हमेशा दो तत्व होंगे), आप निम्न एकत्रीकरण पाइपलाइन को आज़मा सकते हैं जो $first और $last समूह संचायक संचालकों को के बाद तत्व प्राप्त करने के लिए $sort :

var pipeline = [
    {$match : {"geo" : {$ne: null}}},
    { "$unwind": "$geo.coordinates" },
    { "$sort": {"geo.coordinates": 1} } ,
    {
        "$group": {
            "_id": "$_id",
            "lat": { "$first": "$geo.coordinates" },
            "lon": { "$last": "$geo.coordinates" }
        }
    }
];


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. एक एम्बेडेड दस्तावेज़ में 'अप्सर्ट'

  2. नोड.जेएस और मोंगोडब में अतुल्यकालिक डेटाबेस प्रश्नों को संभालना

  3. कैसे एक विशेष क्षेत्र नेवला में एक संग्रह से बाहर करने के लिए?

  4. MongoDB:एकाधिक सरणी तत्वों का मिलान करें

  5. आप MongoDB में मैत्री संबंध कैसे मॉडल करेंगे?