Запрос 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

Другие вопросы по тегам