यह वास्तव में नहीं है। पहली क्वेरी, db.users.find({"user":{"login":"tester"}});
, इसका मतलब है कि आप एक user
. की तलाश कर रहे हैं जो {"login":"tester"}
. के बराबर है पूरी तरह से ऑब्जेक्ट करें, न कि login
. वाला उपयोगकर्ता फ़ील्ड tester
. के बराबर है . एक दस्तावेज़ है जो उस मानदंड से मेल खाता है और वह दस्तावेज़ वास्तव में क्वेरी परिणाम के रूप में लौटा है।
इसी तरह, दूसरी क्वेरी, db.users.find({"user":{"name":"anil"}});
, इसका मतलब है कि आप एक user
. की तलाश कर रहे हैं जो {"name":"anil"}
. के बराबर है पूरी तरह से वस्तु। ऐसा कोई user
नहीं है . एक दस्तावेज़ है जो आपकी क्वेरी से आंशिक रूप से मेल खाता है लेकिन वह पर्याप्त नहीं है।
अगर आप एक user
की तलाश में हैं name
. के साथ anil
. के बराबर , डॉट नोटेशन . का उपयोग करें उप-दस्तावेज़ तक पहुँचने के लिए, जैसा कि आपने अपने प्रश्नों के दूसरे समूह में किया था।
हाँ। यह सही तरीका है।