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