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

Node.JS और Mongoose का उपयोग करके MongoDB से सरल सरणी में डेटा कैसे प्राप्त करें?

आप एग्रीगेशन फ्रेमवर्क रूट पर जा सकते हैं, जिसमें $unwind ऑपरेटर। यह सूची डेटा फ़ील्ड के प्रत्येक तत्व के लिए एक नया रिकॉर्ड उत्पन्न करेगा जिस पर खोलना लागू किया गया है। यह मूल रूप से डेटा को समतल करता है।

डेटा को समतल करने के बाद आपको $lookup ऑपरेटर को products . पर "जुड़ना" करने के लिए products . के लिए फ़ील्ड संग्रह। नेस्टेड फल स्कीमा के लिए प्रक्रिया को दोहराएं।

इसे बेहतर ढंग से समझने के लिए एक उदाहरण (अनपरीक्षित) देखते हैं

var Schema = require('../model/schema');
Schema.Shop.aggregate([
    { "$unwind": "$products" },
    {
        "$lookup": {
            "from": "products",
            "localField": "products",
            "foreignField": "_id",
            "as": "product"
        }
    },
    { "$unwind": "$product" },
    { "$unwind": "$product.fruits" },
    {
        "$lookup": {
            "from": "fruits",
            "localField": "product.fruits",
            "foreignField": "_id",
            "as": "fruits"
        }
    },  
    {
        "$project": {
            "nameShop": 1,
            "nameProduct": "$product.nameProduct",
            "nameFruit": "$fruits.nameFruit",
            "price": "$fruits.price",
        }
    }
]).exec(function (err, result){
    if (err) throw err;
    console.log(result);
})

अस्वीकरण :ऊपर परीक्षण नहीं किया गया कोड है जो केवल कुछ अनुमान लगाकर एक मार्गदर्शक के रूप में कार्य करता है कि आप नवीनतम MongoDB और mongoose संस्करणों के साथ एक परीक्षण वातावरण में कोड चला रहे हैं जो $lookup ऑपरेटर और कि आप मोंगो खोल में एक ही एकत्रीकरण क्वेरी कर सकते हैं।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मोंगोडब में सरणी से एक तत्व को हटा रहा है

  2. नेवले को अलग कैसे इस्तेमाल करें, छोड़ें और एक साथ सीमित करें

  3. Google क्लाउड प्लेटफ़ॉर्म - मोंगोडब से कनेक्ट नहीं हो सकता

  4. सत्र का समर्थन करने वाले MongoDB क्लस्टर को कैसे कॉन्फ़िगर करें?

  5. उप-दस्तावेज़ सरणी के लिए मोंगो _id