【问题标题】:MongoDB - remove many from arrays of all existing elementsMongoDB - 从所有现有元素的数组中删除许多
【发布时间】:2021-07-15 12:55:55
【问题描述】:

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

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

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

60f02d21159c4b4110f21a32

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

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

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

UserModel 是我的用户 mongodb Schema。

【问题讨论】:

    标签: mongodb mongoose mongodb-query mongoose-schema


    【解决方案1】:

    你可以使用 $pull

    {
      $pull: {
        projectsInputs: "123"
      }
    }
    

    【讨论】:

    • 你能组织整个查询吗
    • return UserModel.updateMany( { projectsInput: { $elemMatch: args.projectId, }, }, { $pull: { projectsInput: args.projectId, }, } );
    猜你喜欢
    • 1970-01-01
    • 2019-04-03
    • 2022-11-16
    • 1970-01-01
    • 2017-04-12
    • 2017-12-22
    • 2017-03-25
    • 2013-11-25
    相关资源
    最近更新 更多