W rzeczywistości tak nie jest. Pierwsze zapytanie, db.users.find({"user":{"login":"tester"}}); , oznacza, że szukasz user co równa się {"login":"tester"} obiekt całkowicie, a nie użytkownik z login pole równa się tester . Istnieje jeden dokument, który pasuje do tych kryteriów i ten dokument faktycznie został zwrócony jako wynik zapytania.
Podobnie drugie zapytanie, db.users.find({"user":{"name":"anil"}}); , oznacza, że szukasz user to równa się {"name":"anil"} obiekt całkowicie. Nie ma takiego user . Jest jeden dokument, który częściowo pasuje do Twojego zapytania, ale to nie wystarczy.
Jeśli szukasz user z name równa się anil , użyj notacji z kropkami aby uzyskać dostęp do poddokumentu, tak jak w przypadku drugiej grupy zapytań.
TAk. to jest właściwy sposób.