2013-03-26 5 views
14

द्वारा mongodb क्वेरी सभी {"module" : "B"} से पूछताछ कैसे करें?उप-क्षेत्र

निम्न क्वेरी काम नहीं करता:

db.XXX.find({ "_id" : { "module" : "B" } }); 

धन्यवाद एक टन!

डेटा लगता है:

{ 
    "_id" : {"module" : "A","date" : ISODate("2013-03-18T07:00:00Z")}, 
    "value" : {"count" : 1.0} 
} 

{ 
    "_id" : {"module" : "B","date" : ISODate("2013-03-18T08:00:00Z")}, 
    "value" : {"count" : 2.0} 
} 
+0

यह बहुत अजीब है, दस्तावेज़ पहचानकर्ता (_id) फ़ील्ड – ajduke

उत्तर

27

प्रयास करें:

db.XXX.find({ "_id.module" : "B" }); 

अंतर आपकी मूल क्वेरी कि पूरे पर मैच के लिए कोशिश कर रहा होता है उप-दस्तावेज (यानी जहां _id एक उप-दस्तावेज है जिसमें "मॉड्यूल" फ़ील्ड वाला मान "बी" और कुछ भी नहीं है)

संदर्भ: MongoDB Dot Notation

1

उपयोग डॉट नोटेशन:

db.XXX.find({ "_id.module" : "B" }) 
1
Subdocument

पर

सटीक मिलान के लिए

db.bios.find(
    { 
    '_id.module': 'B' 
    } 
) 

क्वेरी एक subdocument में पहुँच क्षेत्रों के लिए dot संकेतन का उपयोग करता है:

Refference link

+1

बी के बाद आपको एक अतिरिक्त उद्धरण मिला है (या एक लापता एक befor ई यह)। – tandrewnichols

संबंधित मुद्दे