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.