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

$लुकअप जब विदेशी फ़ील्ड नेस्टेड सरणी में है

मुझे यकीन नहीं है कि मैं आपके प्रश्न को पूरी तरह समझता हूं लेकिन इससे आपको मदद मिलनी चाहिए:

db.student.aggregate([{
    $match: { _id: ObjectId("657...") }
}, {
    $lookup: {
        from: 'library',
        localField: '_id' ,
        foreignField: 'issued_to.student',
        as: 'result'
    }
}])

यदि आप केवल सभी book_name प्राप्त करना चाहते हैं प्रत्येक छात्र के लिए आप यह कर सकते हैं:

db.student.aggregate([{
    $match: { _id: ObjectId("657657657657657657657657") }
}, {
    $lookup: {
        from: 'library',
        let: { 'stu_id': '$_id' },
        pipeline: [{
            $unwind: '$issued_to' // $expr cannot digest arrays so we need to unwind which hurts performance...
        }, {
            $match: { $expr: { $eq: [ '$issued_to.student', '$$stu_id' ] } }
        }, {
            $project: { _id: 0, "book_name": 1 } // only include the book_name field
        }],
        as: 'result'
    }
}])


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Php7 mongo क्वेरी के साथ समस्याएं ढूंढेंवन

  2. मोंगोडीबी/एक्सप्रेस - कनेक्ट के माध्यम से कनेक्ट करने के बाद डेटाबेस कैसे स्विच करें ()

  3. यूटीसी टाइमज़ोन के साथ आज तक आईएसओ 8601 तारीख स्ट्रिंग पार्स करें

  4. मैं $match एकत्रीकरण में मानों की एक सरणी कैसे ढूंढ सकता हूं और परिणाम को समूहित कर सकता हूं?

  5. जावा और मोंगो:ऑब्जेक्ट प्राप्त करें जहां फ़ील्ड मौजूद है