Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MongoDB

MongoDB में क्वेरी आउटपुट को अस्थायी डेटाबेस में कैसे संग्रहीत करें?

MongoDB शेल में, एक संग्रह से क्वेरी परिणाम लेकर दूसरे संग्रह (अस्थायी/स्टेजिंग के रूप में कार्य करने वाला) में डालने के लिए forEach() का उपयोग करें।

उदाहरण: स्रोत संग्रह

> db.demo43.insertOne({"StudentName":"Chris"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e25d4b3cfb11e5c34d898e5") }
> db.demo43.insertOne({"StudentName":"Bob"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e25d4b8cfb11e5c34d898e6") }
> db.demo43.insertOne({"StudentName":"David"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e25d4bbcfb11e5c34d898e7") }

दस्तावेज़ देखना

> db.demo43.find();

आउटपुट: तीन दस्तावेज़।

कॉपी करें demo44 (अस्थायी संग्रह) में

> db.demo43.find().forEach(function(myDocument) {
    db.demo44.insert(myDocument);
});

लक्ष्य संग्रह में सत्यापित करें

> db.demo44.find();

आउटपुट: समान तीन दस्तावेज़ (समान _id के साथ) demo44 में कॉपी किए गए।

व्याख्या

  • find() एक कर्सर लौटाता है।
  • forEach() प्रत्येक दस्तावेज़ पर पुनरावृत्त करता है।
  • db.demo44.insert(myDocument) प्रत्येक दस्तावेज़ को लक्ष्य संग्रह में डालता है।
  • मूल _id मान संरक्षित रहते हैं।

बेहतर विकल्प: एग्रीगेशन $out / $merge (MongoDB 4.2+)

सर्वर-साइड कॉपी के लिए (बड़े डेटासेट के लिए तेज़, कोई नेटवर्क राउंड-ट्रिप नहीं):

> db.demo43.aggregate([ { $match: {} }, { $out: "demo44" } ]);
  • $out लक्ष्य संग्रह को **बदल देता है** (परमाणु रूप से)।
  • $merge (MongoDB 4.2+) मौजूदा डेटा में मर्ज करता है (अपसर्ट, रिप्लेस, आदि)।

नोट

  • forEach शेल-ओनली है; ड्राइवर कोड में, कर्सर पर पुनरावृत्त करें और insertMany बैच में करें।
  • बहुत बड़े परिणाम सेट के लिए, $out/$merge काफी तेज़ हैं।
  1. - MongoDB डेटाबेस कैसे साफ़ करें?

    साफ़ करने के लिए, dropDatabase का उपयोग करें। निम्न सिंटैक्स है: use yourDatabaseName; db.dropDatabase(); MongoDB डेटाबेस साफ़ करने के लिए, पहले सभी डेटाबेस दिखाएं: > show dbs यह निम्न आउटपुट देगा: MyDB 0.000GB admin 0.000GB config 0.000GB local 0.000GB onlinecustomertracker 0.000

  1. - MongoDB में Sub-documents पर Find Query Execute करना

    Sub-documents के लिए dot notation का उपयोग करें। आइए पहले documents के साथ एक collection बनाते हैं: > db.demo537.insertOne({details:{SubjectName:MongoDB}}); { acknowledged : true, insertedId : ObjectId(5e8c8a10ef4dcbee04fbbc05) } > db.demo537.insertOne({details:{SubjectName:MySQL}}); { acknowl

  1. - MongoDB में SQL LIKE के समान क्वेरी कैसे करें?

    MongoDB में LIKE के समान कार्यक्षमता के लिए find() के साथ रेगुलर एक्सप्रेशन (//) का उपयोग करें। आइए एक कलेक्शन बनाते हैं: > db.demo686.insertOne({FirstName:Robert}); { acknowledged : true, insertedId : ObjectId(5ea55182a7e81adc6a0b395c) } > db.demo686.insertOne({FirstName:John}); { acknowledg