Точечная запись в запросах Node JS MongoDb - PullRequest
1 голос
/ 08 февраля 2011

Можно ли использовать многоточие при работе с вложенными документами?

http://www.mongodb.org/display/DOCS/Dot+Notation+(Reaching+into+Objects)

Я пытаюсь запросить результаты карты / уменьшить и поэтому должен выполнить запрос, подобный этому:

find({'_id.page' : 'ThisPage', '_id.user' : 'AUser'}) 

Код узла не возвращает строк, но тот же запрос работает, как и ожидалось, в оболочке mongodb.

Ответы [ 2 ]

2 голосов
/ 18 мая 2011

Точечная нотация не требуется для доступа к документам внутри запросов, вместо нее можно использовать нотацию документов.

find({'_id.page' : 'ThisPage', '_id.user' : 'AUser'})

вместо этого может быть

find({_id: {page: 'ThisPage', user: 'AUser'}})

0 голосов
/ 14 апреля 2011

Это очень возможно, я делал это раньше.

Почему у вас есть вложенные документы в вашей собственности _id? Не уверен, что ваш вариант использования, но это кажется немного странным. _id - это специальное свойство, которое всегда является уникальным идентификатором документа. Таким образом, он может быть обработан драйвером особенным образом (то есть не ожидает, что будут поддокументы) Может быть, попробуйте поместить ваши поддокументы под другим именем свойства.

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