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.