To ve skutečnosti není. První dotaz, db.users.find({"user":{"login":"tester"}});
, znamená, že hledáte user
to se rovná {"login":"tester"}
objekt, nikoli uživatel s login
pole se rovná tester
. Existuje jeden dokument, který odpovídá tomuto kritériu a tento dokument se skutečně vrátil jako výsledek dotazu.
Podobně druhý dotaz, db.users.find({"user":{"name":"anil"}});
, znamená, že hledáte user
to se rovná {"name":"anil"}
objekt úplně. Žádný takový user
neexistuje . Existuje jeden dokument, který částečně odpovídá vašemu dotazu, ale to nestačí.
Pokud hledáte user
s name
rovná se anil
, použijte tečkový zápis pro přístup k dílčímu dokumentu, jako jste to udělali ve své druhé skupině dotazů.
Ano. toto je správný způsob.