首页 > 解决方案 > MongoDB 根据自定义 ID 更新/删除多个文档

问题描述

我有一个 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 的文档。任何关于如何进行的想法都会有很大的帮助

标签: javascriptnode.jsmongodbexpress

解决方案


更新

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

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

在这里测试

要更新与给定条件匹配的所有文档,请使用multi: true

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

在这里测试

删除

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

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

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

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

推荐阅读