2015-01-12 4 views
1

У меня есть коллекция метеоров, с которой я работаю.Запрос коллекции метеоров, проверяя наличие подполя

Каждый объект в этой коллекции имеет поле, представляющее собой массив объектов. Этот массив объектов не одинаковый для каждого объекта в моей основной коллекции. Иногда это поле имеет два объекта, иногда три и так далее.

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

Как бы написать этот запрос?

+0

Просьба указать образец запрашиваемых документов и то, что вы пробовали до сих пор. –

ответ

2

Учитывая документ:

{ 
    array: [ 
    { 
     optionalField: "" 
     otherField: "" 
    } 
    ] 
} 

в коллекции виджетов,

Widgets.find({'array.optionalField': {$exists : true }}) 

бы вернуть все документы виджета, где еще существовал optionalField.

Как вы, вероятно, можете извлечь из примера, оператор запроса Mongo '$ exists' выбирает только документы, содержащие это поле, независимо от того, является ли это иначе ложным или нет.

Смежные вопросы