MongoDB从数组中删除值

1dkrff03  于 2023-10-16  发布在  Go
关注(0)|答案(1)|浏览(82)

在我的users集合中,我有一个ObjectID数组字段
这是架构中的部分

groups: [
  {
    type: mongoose.Schema.Types.ObjectId,
    ref: "Group",
  },
],

数据看起来像

{
  "_id": {
    "$oid": "63ec9a509c6be6a91771a953"
  },
 
  "groups": [
    {
      "$oid": "6477264d2bcb80a3945f2fc1"
    }
  ],
  
 ....
}

我想删除组(objectId)从所有用户例如删除“6477264d2bcb80a3945f2fc1”从所有用户相关的这个组
解决方案是一个一个地移除,还是有更好的解决方案
谢谢

p8h8hvxi

p8h8hvxi1#

您可以通过一个简单的updateMany查询来实现这一点

db.users.updateMany(
  { groups: ObjectId('6477264d2bcb80a3945f2fc1') },
  { $pull: { groups: ObjectId('6477264d2bcb80a3945f2fc1') } }
);

请参阅updateMany、查询元素的数组和pull operator的文档页面

相关问题