Используйте мангуста для поиска по вложенным документам свойств - PullRequest
2 голосов
/ 08 декабря 2011

В настоящее время у меня есть коллекция документов, каждый из которых содержит массивы, указывающие на другие документы в этой коллекции.Мне нужно запросить эту коллекцию для документов, в которых вложенные в массивы содержат определенное свойство.Я надеюсь, что это объяснит мою просьбу более четко:

if doc.list1[0].prop = 'foo' or doc.list2[0].prop = 'foo' then select doc

Я пытался использовать .find (), но безрезультатно.

{
    'doc.list1': 'foo',
    $or: [
        { 'doc.list2': 'foo' }
    ]
}

Я на правильном пути?Потому что я так не думаю.Это лучшее, что я могу увидеть в документации.

Редактировать

Вот моя фактическая инициализация запроса с использованием той же схемы, что и предложение Томаса.

var query = this.Word.find({
    $or: [
        { 'before.0.cleanWord': topic },
        { 'after.0.cleanWord': topic },
        { 'cleanWord': topic }
    ]
});

1 Ответ

3 голосов
/ 08 декабря 2011
{
  $or: [
    { 'doc.list1.0.prop': 'foo' }
    { 'doc.list2.0.prop': 'foo' }
  ]
}

http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%24or

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