【发布时间】:2020-11-19 23:13:17
【问题描述】:
我有一个这样的结构:
{
"user" : "admin",
"exercises" : [
{
"name" : "exercise 1",
"documents" : [
{
"idDoc" : "1",
"name" : "doc1"
},
{
"idDoc" : "2",
"name" : "doc1"
},
{
"idDoc" : "3",
"name" : "doc2"
}
]
}
]
}
如何计算名称 = doc1 的所有文档?
输出是:
{
"_id" : "objectId", --userId
"count" : 2
}
我知道下面的代码可以计算所有文档,但我不知道用条件来计算它们。
Schema.aggregate()
.match({ user: username })
.project({ size: {
$reduce : {
"input" : "$exercises",
"initialValue" : 0,
"in" : {"$add":["$$value",{"$size":"$$this.documents"}]}
}
}});
请帮忙!感谢您的阅读。
【问题讨论】:
标签: node.js mongoose aggregation-framework