MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

mongodb greift auf Unterdokumente zu

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.