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

मैं मोंगो डीबी एकत्रीकरण परिणामों को मौजूदा संग्रह में कैसे जोड़ूं?

Mongo 4.2 से शुरू हो रहा है , नया $merge एग्रीगेशन ऑपरेटर ($out . के समान) ) विलय . की अनुमति देता है निर्दिष्ट संग्रह में एकत्रीकरण पाइपलाइन का परिणाम:

इस इनपुट को देखते हुए:

db.source.insert([
  { "_id": "id_1", "a": 34 },
  { "_id": "id_3", "a": 38 },
  { "_id": "id_4", "a": 54 }
])
db.target.insert([
  { "_id": "id_1", "a": 12 },
  { "_id": "id_2", "a": 54 }
])

$merge एकत्रीकरण चरण का उपयोग इस प्रकार किया जा सकता है:

db.source.aggregate([
  // { $whatever aggregation stage, for this example, we just keep records as is }
  { $merge: { into: "target" } }
])

उत्पादन करने के लिए:

// > db.target.find()
{ "_id" : "id_1", "a" : 34 }
{ "_id" : "id_2", "a" : 54 }
{ "_id" : "id_3", "a" : 38 }
{ "_id" : "id_4", "a" : 54 }

ध्यान दें कि $merge ऑपरेटर कई विकल्पों के साथ आता है यह निर्दिष्ट करने के लिए कि मौजूदा रिकॉर्ड के विपरीत सम्मिलित रिकॉर्ड को कैसे मर्ज किया जाए।

इस मामले में (डिफ़ॉल्ट विकल्पों के साथ), यह:

  • लक्ष्य संग्रह के मौजूदा दस्तावेज़ रखता है (यह { "_id": "id_2", "a": 54 } का मामला है )

  • एकत्रीकरण पाइपलाइन के आउटपुट से दस्तावेज़ों को लक्ष्य संग्रह में सम्मिलित करता है जब वे पहले से मौजूद नहीं होते हैं (_id के आधार पर) - यह मामला है { "_id" : "id_3", "a" : 38 } )

  • लक्ष्य संग्रह के रिकॉर्ड को बदल देता है जब एकत्रीकरण पाइपलाइन लक्ष्य संग्रह में मौजूद दस्तावेजों का उत्पादन करती है (_id के आधार पर) - यह { "_id": "id_1", "a": 12 } का मामला है { "_id" : "id_1", "a" : 34 } . द्वारा प्रतिस्थापित किया गया )



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Node.js mongodb . में सम नेस्टेड सरणी

  2. एक नेवला स्कीमा कैसे बनाएं जो इनपुट को mongodb में html के रूप में सहेजता है

  3. MongoDb दस्तावेज़ से उप-दस्तावेज़ हटा दें

  4. मैं रूबी ड्राइवर के साथ MongoDB के अंदर अपने दस्तावेज़ का आकार कैसे जान सकता हूँ?

  5. अनुक्रमण पर प्रभाव mongodb _id पीढ़ी