Запрос Mongodb, приведите только определенные элементы в массив объектов
У меня есть одна проблема, чтобы привести мой запрос в mongodb.
У меня есть одна коллекция документов, подобная этой: https://github.com/pedrualves/document/blob/master/school.js
Я могу найти этот документ без проблем, используя "страницы": 32
Но я не могу показать результаты, как это:
{
"book": [
{
"pages": 32,
"title": "a"
},
{
"pages": 32,
"title": "c"
},
{
"pages": 32,
"title": "d"
}
]
}
Кто-то может помочь мне с этой проблемой?
Спасибо
0 ответов
Эта проблема была решена с помощью Unwind from aggregate framework. Таким образом, я могу разделить массив, группу и фильтр.
db.'collection_name'.aggregate([
{ $unwind : "$students" },
{ $unwind : "$students.class" },
{ $unwind : "$students.class.book" },
{$match:{"students.class.book.pages":{$in:[32]}}},
{$group:
{
_id:'$students.name',
teste:{$push:'$students.class.book'}
}
}
])
Также можно использовать оператор $redact