Problem.aggregate(
[
{ $unwind: "$comments" },
{
$group: {
_id: "$_id",
size: { $size: "$comments" }
}
}
],
function(err, results) {
console.log(err);
console.log(results);
}
);
我尝试将 $size 与聚合一起使用,但出现此错误:
MongoError: 未知组运算符“$ size”。
我正在使用 mongodb 3.6 版。我只想获取数组的 comments 属性的长度。
这是一个示例问题文档:
{
"_id": {
"$oid": "5e02a2184a6e7f4980f47e8f"
},
"author": {
"id": {
"$oid": "5e027a4badd90919304a9eb0"
}
},
"description": "testd",
"gender": 0,
"dailyUpvotes": 2,
"tags": [
{
"_id": {
"$oid": "5e02a2184a6e7f4980f47e90"
},
"name": "test"
}
],
"title": "test",
"upVotes": 2,
"comments": [
{
"_id": {
"$oid": "5e03124933c17d406471d6f9"
},
"id": {
"$oid": "5e03124933c17d406471d6f8"
}
}
],
"upVotesList": [
{
"_id": {
"$oid": "5e045a07745eb94b584d27e1"
},
"userID": {
"$oid": "5e045a00745eb94b584d27e0"
}
},
{
"_id": {
"$oid": "5e02a26b3cbe4e3794555f42"
},
"userID": {
"$oid": "5e027a4badd90919304a9eb0"
}
}
],
"createdAt": {
"$date": "2019-12-24T23:41:12.707Z"
},
"updatedAt": {
"$date": "2019-12-26T06:58:15.080Z"
},
"__v": 2
}
我只想获取数组的长度,而不是获取 的数组。如果有另一种不使用聚合的方法,那也很好:) 提前致谢!
尝试这样的事情。
Problem.aggregate([
{
$project: {
item: 1,
numberOfResults: { $size: "$comments" }
}
}
] )
看看https://docs.mongodb.com/manual/reference/operator/aggregation/size/
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句