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

लैम्ब्डा फ़ंक्शन का उपयोग करके मोंगोडब में दो संग्रह के बीच एकाधिक कैसे जुड़ते हैं?

कृपया इसे जांचें:

db.collection("user_posts").aggregate(
{ $match: {"userid" : uid}},
{ $unwind: '$like' },
{ $lookup: { from: "users", localField: "like.userid", foreignField: "_id", as: 
"users" }},
{ $group: {
    _id: "$_id",
    like: { $push: { $mergeObjects: ['$like', { $arrayElemAt: [ "$users", 0 ] } ]}},
    data: { $first: "$$ROOT" }
}},
{ $replaceRoot: { newRoot: { $mergeObjects: ['$data', { like: "$like"} ]} } },
{ $unwind: '$comment' },
{ $lookup: { from: "users", localField: "comment.userid", foreignField: "_id", as: 
 "users" }},
{ $group: {
    _id: "$_id",
        comment: { $push: { $mergeObjects: ['$comment', { $arrayElemAt: [ "$users", 0 
 ] } ]}},
        data: { $first: "$$ROOT" }
}},
{ $replaceRoot: { newRoot: { $mergeObjects: ['$data', { comment: "$comment"} ]} } },
{ $unwind: '$share' },
{ $lookup: { from: "users", localField: "share.userid", foreignField: "_id", as: 
"users" }},
{ $group: {
    _id: "$_id",
    share: { $push: { $mergeObjects: ['$share', { $arrayElemAt: [ "$users", 0 ] } 
]}},
    data: { $first: "$$ROOT" }
}},
{ $replaceRoot: { newRoot: { $mergeObjects: ['$data', { share: "$share"} ]} } },
{ $project: { users: 0 }}
)

आपको आउटपुट मिलेगा, अपनी आवश्यकता के अनुसार प्रोजेक्ट एग्रीगेशन में फ़ील्ड नाम जोड़ें/हटाएं बदलें



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. क्लस्टर के बाहर स्टेटफुलसेट्स के साथ कुबेरनेट्स पर मोंगोडीबी का पर्दाफाश करें

  2. MongoDB विश्लेषिकी श्रृंखला:SlamData - SQL चलाएँ और सीधे MongoDB पर रिपोर्ट बनाएँ

  3. NodeJS - MongoDB:एक प्रारंभिक कनेक्शन का उपयोग करें

  4. MongoDb पृष्ठभूमि अनुक्रमण और अद्वितीय अनुक्रमणिका

  5. जावा स्पार्क स्पार्कसेशन को कैसे कॉन्फ़िगर करें नमूना आकार