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

दूसरे से एक सेट के आधार पर किसी अन्य संग्रह से दस्तावेज़ वापस करने का तरीका खोज रहे हैं, MongoDB

एसक्यूएल में "जॉइन" के समान, मोंगो में आपको "लुकअप" का उपयोग करना होगा।

लुकअप का उपयोग करने के लिए आपको "एग्रीगेट" क्वेरी का उपयोग करना होगा,

तो आपको जिस क्वेरी की आवश्यकता है वह है,

db.collection('users').aggregate({$match:{ email: 'example_email' }},
    {$unwind:{path:"$sensors"}},
    {$lookup:{from:"sensor", localField: "sensors", foreignField:"sensorId", as:"sensorDetails"}},
(err, userData)=>{
      console.log(userData);
})

तो यह क्वेरी क्या कर रही है,

"$ लुकअप" लाइन देखें ---> "उपयोगकर्ता" संग्रह से, यह "सेंसर" फ़ील्ड का उपयोग कर रहा है (एसक्यूएल में प्राथमिक आईडी की तरह आपके उपयोगकर्ता संग्रह के लिए स्थानीय क्षेत्र) और "सेंसर" संग्रह से जानकारी प्राप्त करने के लिए सेंसरआईड (विदेशी) सेंसर संग्रह में फ़ील्ड), और परिणाम को "सेंसर विवरण" फ़ील्ड में संग्रहीत करें।

आप "userData[0].sensorDetails" के साथ sensorDetails तक पहुंच प्राप्त कर सकते हैं।sensorDetails सरणी होगी।

लुकअप के बारे में आधिकारिक दस्तावेज़ देखें अनविंड के बारे में भी पढ़ें



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. DigitalOcean पर MongoDB चलाना

  2. मैं एक MongoDB उपयोगकर्ता का पासवर्ड कैसे बदलूं?

  3. क्या भू-स्थानिक प्रश्न सरणियों पर काम करते हैं? ( $geoWithin , $geoIntersects )

  4. लोड परीक्षण के दौरान MongoDB अनुत्तरदायी क्यों है?

  5. Nodejs mongodb सर्वर पर नहीं जाग रहा है