MongoDB根据条件获取数组元素计数



对于给定的结构,我需要根据唯一的slug值找出likes数组的计数

{
"_id" : ObjectId("4e8ae86d08101908e1000001"),
"name" : ["Name"],
"likes" : ["emp1"],
"slug": 'slugabcd'
}
{
"_id" : ObjectId("4e8ae86d08101908e1000002"),
"name" : ["Another ", "Name"],
"likes" : ["emp1","emp2","emp4"],
"slug": 'slugxyz'
}
{
"_id" : ObjectId("4e8ae86d08101908e1000002"),
"name" : ["Another ", "Name"],
"slug": 'slugpqr'
}

这是我的代码,但不工作

db.blog.aggregate({slug:"slugxyz"},{$project:{NumberOfItemsInArray:{$size:"likes"}}}).count();

我们如何才能做到这一点?

不使用任何查询阶段:

db.blog.aggregate({$project:{slug : "$slug", numberOfLikes:{$size:"$likes"}}})

尝试以下操作:

const pipeline = [
{ 
$group: {
_id: "$slug",
likesCount: {$sum: {$size: "$likes"}}
}
]

在这里,我们通过唯一的";鼻涕虫";值并计数"0"的大小;点赞"数组字段。

最新更新