Как мне искать по полям во внутренних классах, используя MongoDB db.coll.find ()? - PullRequest
3 голосов
/ 09 сентября 2011

Я пытаюсь найти документы в моей коллекции с помощью команды find () в MongoDB, Кто-нибудь может объяснить, почему это не работает? и правильно ли выполнить команду?

j = {name:"mongo",property:{type:"database",lang:"cpp"}};
{
    "name" : "mongo",
    "property" : {
        "type" : "database",
        "lang" : "cpp"
    }
}

db.dummy.save(j);

db.dummy.find({"property" : { "type" : "database" }});

Последняя команда не возвращает мне ничего. Я не могу понять, почему. Что мне делать, если я

Ответы [ 3 ]

5 голосов
/ 09 сентября 2011

В mongodb есть понятие точечная запись . Таким образом, чтобы добраться до встроенных документов, вы должны использовать точечную запись. В вашем случае это будет выглядеть так:

db.dummy.find({"property.type": "database"})

Или вы можете выполнить поиск по полному совпадению объекта следующим образом:

db.dummy.find({"property" : { "type" : "database", "lang" : "cpp" }});
1 голос
/ 09 сентября 2011

Это работает:

db.dummy.find({"property.type": "database"})
1 голос
/ 09 сентября 2011

правильный шаблон запроса:

db.dummy.find({"property.type": "database"})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...