Mongoose 中引用的文档数量 collection
Mongoose number of documents referenced in a collection
我有2个collections
用户:
email: { type: String, required: true, unique: true },
team: { type: ObjectId, ref: 'team', required: true},
和团队:
name: { type: String, required: true },
active: { type: Boolean, required: true, default: true},
我想获取所有团队以及该团队中的用户数量,我将如何使用 Mongoose 来处理这个问题?
使用 Teams
模型并执行聚合查询。
首先,我们加入 users
集合中的所有用户。然后我们创建一个名为 user_amount
的额外字段,我们在其中存储 users
数组的大小。在最后一步中,我们删除了 users
属性,但如果您需要此数组,只需删除此管道的最后一步。
Teams.aggregate([
{
"$lookup": {
"from": "users",
"localField": "_id",
"foreignField": "team",
"as": "users"
}
},
{
"$addFields": {
"user_amount": {
"$size": "$users"
}
}
},
{
"$unset": "users"
}
])
我有2个collections
用户:
email: { type: String, required: true, unique: true },
team: { type: ObjectId, ref: 'team', required: true},
和团队:
name: { type: String, required: true },
active: { type: Boolean, required: true, default: true},
我想获取所有团队以及该团队中的用户数量,我将如何使用 Mongoose 来处理这个问题?
使用 Teams
模型并执行聚合查询。
首先,我们加入 users
集合中的所有用户。然后我们创建一个名为 user_amount
的额外字段,我们在其中存储 users
数组的大小。在最后一步中,我们删除了 users
属性,但如果您需要此数组,只需删除此管道的最后一步。
Teams.aggregate([
{
"$lookup": {
"from": "users",
"localField": "_id",
"foreignField": "team",
"as": "users"
}
},
{
"$addFields": {
"user_amount": {
"$size": "$users"
}
}
},
{
"$unset": "users"
}
])