MongoDB 基础操作之删除操作

删除

MongoDB有 3 种常用的删除方法,分别为remove()delete()deleteMany()

(1) 语法格式
 db.collection.update( 
      <query > ,
      {
        justOne: < boolean > ,
        writeConcern: < document > ,
        collation: < document > 
        }
)
(2) 参数说明
  • writeConcern: 此为可选参数。表示是否使用写入策略。
  • collation:可选参数。用来指定更新的排序规则。
  • justOne:可选参数。表示文档与删除条件匹配时,是否仅删除第 1 个文档。此参数默认为false。若将此参数设置为true,则仅删除匹配到的第 1 个文档;若将此参数设置为false,则删除匹配到的所有文档。
(3) 范例

仅删除匹配到的第 1 个文档
删除前:

> db.Product.find({"SysNo": 9898998989})

{ "_id" : ObjectId("60da83996350a57504489e73"), "SysNo" : 9898998989, "ProductName" : "DE - 1300 Earbuds", "Weight" : 1000, "ProductMode" : "Set" }
{ "_id" : ObjectId("60da83996350a57504489e74"), "SysNo" : 9898998989, "ProductName" : "( Role Gold) 16GB", "Weight" : 143, "ProductMode" : "Set" }
{ "_id" : 1, "ProductNname" : "Rarbus", "SysNo" : 9898998989, "Weigth" : 122, "ProductMode" : "Set" }
{ "_id" : ObjectId("60da90d46350a57504489e75"), "ProductNname" : "Rarbus", "SysNo" : 9898998989, "Weigth" : 122, "ProductMode" : "Set" }
{ "_id" : 2, "ProductNname" : "Rarbus", "SysNo" : 9898998989, "Weigth" : 222, "ProductMode" : "Set" }
{ "_id" : ObjectId("60da91676350a57504489e76"), "ProductNname" : "Rarbus", "SysNo" : 9898998989, "Weigth" : 122, "ProductMode" : "Set" }
{ "_id" : ObjectId("60da91866350a57504489e77"), "ProductNname" : "Rarbus", "SysNo" : 9898998989, "Weigth" : 122, "ProductMode" : "Set" }
{ "_id" : ObjectId("60da99fd6350a57504489e78"), "Weigth" : 88888888, "ProductMode" : "Set", "SysNo" : 9898998989 }

删除:

> db.Product.remove({"SysNo": 9898998989},{justOne: true})

WriteResult({ "nRemoved" : 1 })

删除后:

> db.Product.find({"SysNo": 9898998989})
{ "_id" : ObjectId("60da83996350a57504489e74"), "SysNo" : 9898998989, "ProductName" : "( Role Gold) 16GB", "Weight" : 143, "ProductMode" : "Set" }
{ "_id" : 1, "ProductNname" : "Rarbus", "SysNo" : 9898998989, "Weigth" : 122, "ProductMode" : "Set" }
{ "_id" : ObjectId("60da90d46350a57504489e75"), "ProductNname" : "Rarbus", "SysNo" : 9898998989, "Weigth" : 122, "ProductMode" : "Set" }
{ "_id" : 2, "ProductNname" : "Rarbus", "SysNo" : 9898998989, "Weigth" : 222, "ProductMode" : "Set" }
{ "_id" : ObjectId("60da91676350a57504489e76"), "ProductNname" : "Rarbus", "SysNo" : 9898998989, "Weigth" : 122, "ProductMode" : "Set" }
{ "_id" : ObjectId("60da91866350a57504489e77"), "ProductNname" : "Rarbus", "SysNo" : 9898998989, "Weigth" : 122, "ProductMode" : "Set" }
{ "_id" : ObjectId("60da99fd6350a57504489e78"), "Weigth" : 88888888, "ProductMode" : "Set", "SysNo" : 9898998989 }

不加justOne参数

> db.Product.remove({"SysNo": 9898998989})

WriteResult({ "nRemoved" : 7 })

> db.Product.find({"SysNo": 9898998989})
>

如果删除语句为db.Product.remove({}),则删除全部的文档。

2. deleteOne()

deleteOne()方法只能删除第 1 个文档,此方法与 remove()方法中设定justOnetrue一样。

范例
> db.Product.deleteOne({"_id" : ObjectId("60da99fd6350a57504489e78")})
{ "acknowledged" : true, "deletedCount" : 0 }


> db.Product.find({"_id" : ObjectId("60da99fd6350a57504489e78")})
>
3. deleteMany()

使用deleteMany()方法可以一次删除多个文档。

范例
> db.Product.deleteMany({"Weigth" : 88888888666})
{ "acknowledged" : true, "deletedCount" : 1 }
摘抄于《MoongoDB 从入门到商业实战》
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容