Questo non è in realtà. La prima query, db.users.find({"user":{"login":"tester"}});
, significa che stai cercando un user
che equivale a {"login":"tester"}
oggetto completamente, non un utente con login
il campo è uguale a tester
. C'è un documento che corrisponde a quel criterio e quel documento è stato effettivamente restituito come risultato della query.
Allo stesso modo, la seconda query, db.users.find({"user":{"name":"anil"}});
, significa che stai cercando un user
che equivale a {"name":"anil"}
oggetto completamente. Non esiste un tale user
. Esiste un documento che corrisponde parzialmente alla tua richiesta ma non è sufficiente.
Se stai cercando un user
con name
è uguale a anil
, usa Notazione punto per accedere al documento secondario, come hai fatto nel secondo gruppo di query.
Sì. questo è il modo corretto.