Dit is eigenlijk niet. De eerste zoekopdracht, db.users.find({"user":{"login":"tester"}});
, betekent dat u op zoek bent naar een user
dat is gelijk aan {"login":"tester"}
object volledig, geen gebruiker met login
veld is gelijk aan tester
. Er is één document dat overeenkomt met dat criterium en dat document is daadwerkelijk geretourneerd als het zoekresultaat.
Evenzo is de tweede zoekopdracht, db.users.find({"user":{"name":"anil"}});
, betekent dat u op zoek bent naar een user
dat is gelijk aan {"name":"anil"}
object volledig. Er is niet zo'n user
. Er is één document dat gedeeltelijk overeenkomt met uw vraag, maar het is niet genoeg.
Als u op zoek bent naar een user
met name
is gelijk aan anil
, gebruik Puntnotatie om toegang te krijgen tot het subdocument, zoals u deed in uw tweede groep zoekopdrachten.
Ja. dit is de juiste manier.