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

मुख्य दस्तावेज़ मोंगोडब एग्रीगेट बदलें

डायनेमिक कुंजी के साथ नेस्टेड ऑब्जेक्ट बनाने के लिए आपको $ का उपयोग करना होगा। arrayToObject जो चाबियों की एक सरणी लेता है (k ) और values (v ) एक पैरामीटर के रूप में। फिर आप $replaceRoot का इस्तेमाल कर सकते हैं उस नई वस्तु को मूल स्तर पर बढ़ावा देने के लिए। ObjectId . को कन्वर्ट करने के लिए आपको MongoDB 4.0 की आवश्यकता है करने के लिए string $toString का उपयोग करके ऑपरेटर

db.col.aggregate([
    {
        $replaceRoot: {
            newRoot: {
                $arrayToObject: {
                    $let: {
                        vars: { data: [ { k: { $toString: "$_id" }, v: "$serie" } ] },
                        in: "$$data"
                    }
                }
            }
        }
    }
])

आउटपुट:

{
    "5b97f6cea37f8c96db70fea9" : {
            "_id" : ObjectId("5a55f988b6c9dd15b47faa2a"),
            "updatedAt" : ISODate("2018-02-09T13:22:54.521Z"),
            "createdAt" : ISODate("2018-01-10T11:31:20.978Z"),
            "deletar" : false,
            "infantil" : false,
            "status" : true,
            "turma" : [ ]
    }
}

अगर आप _id से छुटकारा पाना चाहते हैं अपने परिणाम में आप v . में स्पष्ट रूप से फ़ील्ड निर्दिष्ट कर सकते हैं जैसे:

v: { updatedAt: "$serie.updatedAt", createdAt: "$serie.createdAt", ... }


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. सिंगल मोंगोडब क्वेरी में खोजें और गिनें

  2. टाइपप्रति के साथ नेवला मॉडल में कस्टम क्वेरी सहायक को कैसे परिभाषित करें?

  3. मोंगोडब को ऑब्जेक्ट आईडी से 3-बाइट काउंटर मिलता है

  4. एक मोंगोडब दस्तावेज़ में सभी सरणी तत्वों को एक निश्चित मूल्य में कैसे बदलें?

  5. db.command का उपयोग करके पायथन मोंगो कुल कैसे प्राप्त करें?