【问题标题】:MongoDB Update/delete Multiple documents based on Custom IDMongoDB 根据自定义 ID 更新/删除多个文档
【发布时间】:2021-10-25 14:16:20
【问题描述】:

我有一个 mongo 架构

   const taskSchema=new Schema({
    userID:{type:ObjectId,required:true},
  task: {
    type: String,
    required: true,
    trim: true,
    maxlength: 30,
  },
  finalDate:{type:Date,required:true},
  isFinished:{type:Boolean,required:true}
 })

我需要什么来获取具有特定 UserID 和 update/delete 的所有文档。 我可以使用 find 方法查找具有所需用户 id 的所有文档。之后我不知道该怎么做。会有多个具有相同用户 ID 的文档。 任何关于如何进行的想法都会有很大的帮助

【问题讨论】:

  • MongoDB 有一个updateMany 方法。
  • 更新很多都可以用。我需要的是如何使用用户 ID 获取所有文档并使用自己的 ID 更新/删除文档

标签: javascript node.js mongodb express


【解决方案1】:

更新

更新第一个匹配给定条件的文档

db.collection.update({
  "userID": ObjectId("5b87780c9ca8b03096a33380"),
  "task": "Cooking"
},
{
  $set: {
    "isFinished": true
  }
})

Test Here

要更新所有符合给定条件的文档,请使用 multi: true

db.collection.update({
  "userID": ObjectId("5b87780c9ca8b03096a33380"),
  "task": "Cooking"
},
{
  $set: {
    "isFinished": true
  }
},
{
  multi: true
})

Test Here

删除

删除第一个符合给定条件的文档

db.collection.delete({ 
  "userID": ObjectId("5b87780c9ca8b03096a33380"),
  "task": "Cooking"
})

删除所有符合给定条件的文档

db.collection.deleteMany({ 
  "userID": ObjectId("5b87780c9ca8b03096a33380"),
  "task": "Cooking"
})

【讨论】:

  • 非常感谢。将升级更改为 upgradeMany(仅一分钟更改)。接受为答案
  • 不客气
猜你喜欢
  • 2021-01-16
  • 2013-06-22
  • 1970-01-01
  • 1970-01-01
  • 2018-09-05
  • 2017-08-18
  • 1970-01-01
  • 1970-01-01
  • 2017-08-22
相关资源
最近更新 更多