Node.js MongoDB शामिल हों
संग्रह में शामिल हों
$lookup
MongoDB एक रिलेशनल डेटाबेस नहीं है, लेकिन आप स्टेज का उपयोग करके एक लेफ्ट आउटर जॉइन कर सकते हैं ।
चरण आपको यह $lookup
निर्दिष्ट करने देता है कि आप वर्तमान संग्रह के साथ किस संग्रह में शामिल होना चाहते हैं, और कौन से फ़ील्ड से मेल खाना चाहिए।
विचार करें कि आपके पास "आदेश" संग्रह और "उत्पाद" संग्रह है:
आदेश
[
{ _id: 1, product_id:
154, status: 1 }
]
उत्पादों
[
{ _id: 154, name:
'Chocolate Heaven' },
{ _id: 155, name: 'Tasty Lemons' },
{
_id: 156, name: 'Vanilla Dreams' }
]
उदाहरण
मिलान करने वाले "उत्पाद" दस्तावेज़ (दस्तावेज़ों) को "आदेश" संग्रह में शामिल करें:
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://127.0.0.1:27017/";
MongoClient.connect(url, function(err, db) {
if (err) throw err;
var dbo = db.db("mydb");
dbo.collection('orders').aggregate([
{ $lookup:
{
from: 'products',
localField: 'product_id',
foreignField: '_id',
as: 'orderdetails'
}
}
]).toArray(function(err,
res) {
if (err) throw err;
console.log(JSON.stringify(res));
db.close();
});
});
उपरोक्त कोड को "demo_mongodb_join.js" नामक फ़ाइल में सहेजें और फ़ाइल चलाएँ:
"demo_mongodb_join.js" चलाएँ
C:\Users\Your Name>node demo_mongodb_join.js
जो आपको यह परिणाम देगा:
[
{ "_id": 1, "product_id":
154, "status": 1, "orderdetails": [
{ "_id": 154, "name":
"Chocolate Heaven" } ]
}
]
जैसा कि आप ऊपर दिए गए परिणाम से देख सकते हैं, उत्पादों के संग्रह से मेल खाने वाले दस्तावेज़ को ऑर्डर संग्रह में एक सरणी के रूप में शामिल किया गया है।