假设我们有一个User模型,其中包含其他User对象的数组。
let UserSchema = mongoose.Schema({
followers: [{
type: mongoose.Schema.ObjectId,
ref: 'User',
}]
})
我需要计数此objectIds。 第一个解决方案是增加关注者的人数。
req.user.followers.length
但我认为获取包含许多objectIds的所有关注者并不重要。在我的查询中,我不需要所有这些objectIds。 我尝试使用虚拟机,但在虚拟机中有很多不必要的东西,我正在寻找这种情况的最佳且无成本的方式。
答案 0 :(得分:2)
由于误解了您的问题,所以我更新了我的答案:您可以使用$size
的mongo聚合。
db.users.aggregate(
[
{
$project: {
id: 1,
total_followers: { $size: "$followers" }
}
}
]
)
如果要查找具有特定长度(例如0)的文档,可以执行以下操作:
db.users.find({ followers: { $size: 0 } } )