Detta är faktiskt inte. Den första frågan, db.users.find({"user":{"login":"tester"}}); , betyder att du letar efter en user som är lika med {"login":"tester"} objekt helt, inte en användare med login fältet är lika med tester . Det finns ett dokument som matchar det kriteriet och det dokumentet returnerades faktiskt som frågeresultat.
Likaså den andra frågan, db.users.find({"user":{"name":"anil"}}); , betyder att du letar efter en user som är lika med {"name":"anil"} objekt helt. Det finns ingen sådan user . Det finns ett dokument som delvis matchar din fråga men det räcker inte.
Om du letar efter en user med name är lika med anil , använd Pricknotation för att komma åt underdokumentet, som du gjorde i din andra grupp av frågor.
Ja. detta är rätt sätt.