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
我有一个问题要在 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