null
{
"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
}
null
Schema.aggregate()
.match({ user: username })
.project({ size: {
$reduce : {
"input" : "$exercises",
"initialValue" : 0,
"in" : {"$add":["$$value",{"$size":"$$this.documents"}]}
}
}});
null
null
db.collection.aggregate([
{ $match: { user: "admin" } },
{
$addFields: {
count: {
$size: {
$reduce: {
input: "$exercises",
initialValue: [],
in: {
$concatArrays: [
"$$value",
{
$filter: {
input: "$$this.documents",
as: "item",
cond: { $eq: ["$$item.name", "doc1"] }
}
}
]
}
}
}
}
}
},
])
null