猫鼬更新数组

时间:2020-01-21 15:31:17

标签: node.js mongodb mongoose

我是编程新手,mongoDb / mongoose更新数组有问题。

我有一个用户模型。该模型包含用户参与的一系列团队。

const userSchema = new mongoose.Schema(
  {
    name: {
      type: String,
      required: [true, 'Please provide name']
    },
    email: {
      type: String,
      unique: true,
      required: [true, 'Please provide email address'],
      lowercase: true
    },
    team: [
      {
      type: mongoose.Schema.Types.ObjectId,
      required: true
      }
    ],
  { toJSON: { virtuals: true }, toObject: { virtuals: true } }
);

这是我的团队模型:

const teamSchema = new mongoose.Schema(
  {
    name: {
      type: String,
      required: [true, 'Please provide a name'],
      unique: true
    }
  { toJSON: { virtuals: true }, toObject: { virtuals: true } }
);

teamSchema.virtual('members', {
  ref: 'User',
  localField: '_id',
  foreignField: 'team'
});

因此,我正在编辑特定的TEAM,并发送一个补丁请求,其中包含属于该团队的这些用户的ID数组。

现在,我应该同时更新多个用户。我不确定执行此操作的正确步骤或最佳方法是什么,但是这些事情需要发生:

  1. 如果团队ID不存在,则将团队ID推入该用户(位于请求中)的团队数组中。
  2. 如果用户的ID不在请求中,但是用户组的团队ID中仍存在团队ID,请从用户的团队数组中删除该团队ID。

我应该如何处理?

0 个答案:

没有答案