MongoDB - 从所有现有元素的数组中删除许多

时间:2021-07-15 12:55:55

标签: mongodb mongoose mongodb-query mongoose-schema

我有一些简单的用户数据。以下是一位用户的示例:

const userSchema = new Schema({
  userName: {
    type: String,
  },
  projectsInput: [
    {
      type: Schema.Types.ObjectId,
      ref: "Project",
    },
  ],
  projectsHold: [
    {
      type: Schema.Types.ObjectId,
      ref: "Project",
    },
  ],
});

I want by

我希望通过让 ProjectId 能够从包含它的所有用户中删除所有记录。 如果我得到第一个

<块引用>

60f02d21159c4b4110f21a32

如何为我的 UserModel 执行 updateMany 函数?

  return UserModel.updateMany(
              {
                projectsInput: {
                  $elemMatch: args.projectId,
                },
              },
              {
                projectsInput: {
                  $slice: [projectsInput.$, 1],
                },
              }
            );
          })

这是我的代码不起作用。 args.projectId = 60f02d21159c4b4110f21a32(我要删除的项目的ID)

UserModel 是我的用户 mongodb Schema。

1 个答案:

答案 0 :(得分:0)

你可以使用 $pull

{
  $pull: {
    projectsInputs: "123"
  }
}
相关问题