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

एक नेस्टेड सरणी के अंदर MongoDB क्वेरी

जैसा कि आप एक . के खिलाफ मैच करते हैं फ़ील्ड, आपको केवल डॉट-नोटेशन का उपयोग करके अपने क्षेत्र के लिए पथ व्यक्त करना होगा:

> db.user.find({"profile.wishlist._id": 2})

जैसा कि में बताया गया है MongoDB दस्तावेज़ीकरण , सरणियों के लिए (जैसे wishlist ) यह किसी दस्तावेज़ से मेल खाएगा यदि कोई सरणी में उप-दस्तावेज़ फ़ील्ड मान से मेल खाते हैं।

कृपया ध्यान दें कि यदि आपको कई . से मिलान करना है फ़ील्ड, आपको या तो उपयोग करने की आवश्यकता है:

  • $elemMatch यदि सभी मेल खाने वाले फ़ील्ड समान . से संबंधित होने चाहिए उपदस्तावेज;
  • या यदि विभिन्न क्षेत्रों को एक ही उप-दस्तावेज़ से मेल खाने की आवश्यकता नहीं है, तो डॉट-नोटेशन का उपयोग करके व्यक्त किए गए कई फ़ील्ड।

इसे समझने के लिए कृपया उन दो प्रश्नों के आउटपुट की तुलना करें:

> db.user.find({"profile.wishlist._id": 2, "profile.wishlist.name": "a1"})
//                                      ^                            ^^
//                              will return your document even if the was no 
//                              subdocument having both _id=2 and name=a1
> db.user.find({"profile.wishlist": {$elemMatch: { _id: 2, name: "a1"}}})
//                                                      ^         ^^
//                                         no result as there was no subdocument
//                                         matching  _both_ _id=2 and name=a1



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. यदि कोई आइटम मौजूद है, तो परीक्षण करने के लिए MongoDB से कैसे पूछताछ करें?

  2. मैं मोंगोडब में अक्षांश और देशांतर के साथ आस-पास की जगह कैसे ढूंढ सकता हूं?

  3. मोंगोएक्सपोर्ट करते समय बहुत अधिक स्थितीय विकल्पों का क्या अर्थ है?

  4. मैं पर्ल के साथ मोंगोडब में एकाधिक फ़ील्ड द्वारा कैसे क्रमबद्ध कर सकता हूं?

  5. परमाणु रूप से उप-दस्तावेजों के साथ मोंगोडब दस्तावेज़ बनाएं?