2013-05-04 2 views
1

В MongoDB, я понимаю, что проецировать только указанные поля в коллекции, я бы выполнить:Проецирование указанных полей в пределах массива в MongoDB (? Отсутствует] ошибка)

db.collection.find({}, {"field1": 1, "field2": 1}) 

Но что бы я, если я сделаю хотел только спроектировать определенные поля в массиве в коллекции? Единственный способ, которым я могу думать будет так:

db.collection.find({field1: [arrayfield1: 1, arrayfield2: 1, arrayfield3: 1]}) 

Но я получаю «SyntaxError: отсутствует] после того, как список элементов (оболочки): 1». Я попытался это так:

db.collection.find({field1: [arrayfield1: 1], [arrayfield2: 1], [arrayfield3: 1]}) 

И получить ту же ошибку. Может ли кто-нибудь сказать мне, что я делаю неправильно? Потому что я не могу понять это. Или, если я нахожусь на совершенно неправильном пути?

(Я знаю, что ошибка говорит «список элементов», и я считаю, что это должен быть список полей или что-то в этом роде, поэтому я подозреваю, что это не тот способ, который я делаю чтобы сделать.)

ответ

2

Я понял. Ответ был точечным. Это сделал трюк:

db.colletion.find({}, { "array.arrayfield1" : 1, "array.arrayfield2" : 1, "array.arrayfield3" : 1 }) 
+0

ваше право, что делает работу db.fred.find ({}, { "" почтовый индекс: 1, "students.name": 1, "students.age": 1}) – Drew

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