Das ist eigentlich nicht. Die erste Abfrage, db.users.find({"user":{"login":"tester"}});
, bedeutet, dass Sie nach einem user
suchen das entspricht {"login":"tester"}
Objekt vollständig, kein Benutzer mit login
Feld gleich tester
. Es gibt ein Dokument, das diesen Kriterien entspricht, und dieses Dokument wurde tatsächlich als Abfrageergebnis zurückgegeben.
Ebenso die zweite Abfrage, db.users.find({"user":{"name":"anil"}});
, bedeutet, dass Sie nach einem user
suchen das entspricht {"name":"anil"}
Objekt vollständig. Es gibt keinen solchen user
. Es gibt ein Dokument, das teilweise mit Ihrer Anfrage übereinstimmt, aber nicht ausreicht.
Wenn Sie nach einem user
suchen mit name
entspricht anil
, verwenden Sie die Punktnotation um auf das untergeordnete Dokument zuzugreifen, wie Sie es in Ihrer zweiten Gruppe von Abfragen getan haben.
Ja. das ist der richtige Weg.