【发布时间】:2021-09-03 17:40:08
【问题描述】:
我有一个用户模式,它有一个名为 associatedTeams 的键。 它看起来像这样:
export const UserSchema = new Schema({
associatedTeams: [AssociatedTeamSchema],
});
同时,关联团队架构如下所示:
export const AssociatedTeamSchema = new Schema({
teamId: { type: ObjectId, required: true }, // each id will be a Team document
userIsAdmin: { type: Boolean, required: true },
});
最后,Team Schema 如下所示:
const TeamSchema = new Schema(
players: [
{
type: ObjectId, // each will be a User
},
],
);
如何编写操作以从所有关联团队中删除已删除的用户? 现在我只是在尝试访问所有相关团队。我很确定我可以使用聚合语法来做到这一点,但我不确定具体如何。
大概是这样的:
const teams = await UserInfo.aggregate({
$lookup: {
from: Team.collection.name,
local_field: "associatedTeams.teamId",
foreign_field: "_id",
as: "teams",
},
});
我非常感谢任何帮助。问题是我不知道如何引用每个关联团队中的“teamId”字段。非常感谢您的帮助。
【问题讨论】: