【发布时间】:2019-10-20 01:59:14
【问题描述】:
我有一个 mongodb 集合,其中包含具有多个属性(可能很多)的对象。其中一个是另一个对象类型的数组,并且该类型有一个布尔属性StateChanged。
我想查询返回此集合中的所有记录,并过滤数组以仅获取带有StateChanged = true 的文档。
这是我已经做过的:
db.getCollection('Cycles').aggregate([
{
$project: {
_id: 0,
// Here I could add Field1: 1, Field2: 1,...
'Subcycles' : {
$filter : {
input: '$Subcycles',
as : 'sub',
cond: { $eq: ['$$sub.StateChanged',true]}
}
}
}
}
])
但是,这只会给我带来“子循环”系列。 我想要的是在根文档中包含其他字段。
我可以在投影中手动指定它们(如 Field1:1,Field2:1,...),但由于可能有很多字段,我想知道是否有一种方法可以自动将它们全部显示出来。
提前致谢!
【问题讨论】:
标签: mongodb mongodb-query aggregation-framework projection