您好我查看了文档:https://docs.mongodb.com/manual/reference/operator/aggregation/size/ 从我读到的,如果我有一个具有authors属性的对象,并且在其中我有多个作者a.k.a数组我应该使用内部聚合中的大小来做但我得到一个错误:
如果我点击了db.posts.find()。pretty()我得到了这个:
{
"_id" : ObjectId("58c7e35a8a00f209be819771"),
"allReviewsLink" : "link somewhere",
"totalReviewCount" : "200"
}
{
"_id" : ObjectId("58c7e515be41d40a39954a38"),
"authors" : [
"Linda",
"Benn",
"Carolyn"
]
}
这就是我尝试过的成功:
db.posts.aggregate( [ {$size: {"$authors" } } ] )
凡帖子是我的收藏品,我收到以下错误:SyntaxError:missing:after property id @(shell):1:63
答案 0 :(得分:1)
你可以采取两种方式。
此查询会将不存在的authors
值设置为大小为0.
db.posts.aggregate( [ {$project:{ size: {$size: {$ifNull:["$authors", []] }}}} ] )
或者您可以先使用$match
过滤文档,然后再计算尺寸。
db.posts.aggregate( [ {$match:{authors:{$exists:true}}},{$project:{ size: {$size:"$authors" }}} ] )
答案 1 :(得分:0)
在聚合中使用$ Project,
registerWithEmailAndPassword