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.