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

Wie finde ich den übereinstimmenden Datensatz in Mongodb?

Dies ist das Verhalten beim Filtern von eingebetteten Dokumenten mit mehreren Ebenen. Normalerweise würde der übereinstimmende Filter das gesamte Dokument zurückgeben, nicht die Teilmengen.

Normalerweise positional operator $ Wird verwendet, um die Unterdokumente in updates abzugleichen . Aber die Funktion ist noch nicht in Rückgabebezeichnern implementiert.

Es gibt bereits ein ausstehendes Problem in Mongo Support for positional ($) operator in fields to return specifier . (Bitte melden Sie sich an, um abzustimmen, wenn Sie die Funktion wirklich benötigen)

Sie müssen also Ihr Schema umgestalten, um damit umzugehen, vielleicht so

db.test.insert({"person" : [ { "id":1, "details" : { "name" : "Aswini", "Age" : 10 }}]})
db.test.insert({"person" : [ { "id":2, "details" : { "name" : "Mahesh", "Age" : 11}}]})

db.test.find({"person.id":1},{'person.details':1})