Пн go - запрос, встроенный документ не соответствует, кроме записи через точку - PullRequest
0 голосов
/ 25 мая 2020

Я запуталась. вот пример:

MongoDB Enterprise > db.employee.find()

результат:

{"_id":1002,"name":"Jack","address":{"previous":"Cresent Street","current":"234,Bald Hill Street","unit":"MongoDB" } }

Я пробую это:

db.employee.find({address:{previous: "Cresent Street"}})

result: nothing returns

Затем попробуйте это:

 db.employee.find({"address.previous": "Cresent Street"})

результат:

{"_id":1002,"name":"Jack","address":{"previous":"Cresent Street","current":"234,Bald Hill Street","unit":"MongoDB"}}

Вопрос, что с этим не так?

Я использую версию оболочки MongoDB v4.2.7, установленную cmd db.version () 4.2.6 debian 10.4

спасибо за ответы.

1 Ответ

0 голосов
/ 25 мая 2020

При запросе к встроенным / вложенным документам с использованием обозначения полей с точками

{"address.previous": "Cresent Street"}

означает поиск документа, содержащего поле address, которое содержит документ, поле previous равно "Cresent Street".

Когда вы предоставляете вложенный документ, например

{address:{previous: "Cresent Street"}}

, это означает поиск документа, который содержит поле address, содержимое которого в точности совпадает с документом {previous: "Cresent Street"} , без дополнительных полей. Если вы предоставляете несколько полей во вложенном документе, порядок полей также имеет значение.

Оба этих запроса полезны в c сценарии ios, выберите тот, который делает то, что вам нужно в вашей ситуации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...