Mongodb 查询,结果只将特定元素放入对象数组

Mongodb query, result only specific elements into array of objects

我有一个问题要在 mongodb 中生成我的查询。

我有这样一组文档:https://github.com/pedrualves/document/blob/master/school.js

我可以毫无问题地搜索此文档 "pages": 32

但是,我无法显示这样的结果:

{
"book": [
 {
  "pages": 32,
  "title": "a"
 },
 {
  "pages": 32,
  "title": "c"
 },
 {
  "pages": 32,
  "title": "d"
 }
]
}

谁能帮我解决这个问题?

谢谢

此问题已通过聚合框架中的 Unwind 解决。 所以我可以拆分数组、组和过滤器。

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