MongoDB 中 deleteOne() 和 findOneAndDelete() 操作之间的区别是什么?
findOneAndDelete() 根据过滤器和排序条件删除集合中的单一文档,同时返回已删除的文档。
deleteOne() 从集合中删除单一文档。
让我们看一个示例并创建一个带有文档的集合 -
> db.demo448.insertOne({"Name":"Chris","Age":21});{
"acknowledged" : true,
"insertedId" : ObjectId("5e7a291cbbc41e36cc3caeca")
}
> db.demo448.insertOne({"Name":"David","Age":23});{
"acknowledged" : true,
"insertedId" : ObjectId("5e7a2926bbc41e36cc3caecb")
}
> db.demo448.insertOne({"Name":"Bob","Age":22});{
"acknowledged" : true,
"insertedId" : ObjectId("5e7a2930bbc41e36cc3caecc")
}使用 find() 方法显示集合中的所有文档 -
> db.demo448.find();
这将产生以下输出 -
{ "_id" : ObjectId("5e7a291cbbc41e36cc3caeca"), "Name" : "Chris", "Age" : 21 }
{ "_id" : ObjectId("5e7a2926bbc41e36cc3caecb"), "Name" : "David", "Age" : 23 }
{ "_id" : ObjectId("5e7a2930bbc41e36cc3caecc"), "Name" : "Bob", "Age" : 22 }以下是实现 deleteOne() 的查询 -
> db.demo448.deleteOne({_id:ObjectId("5e7a2926bbc41e36cc3caecb")});这将产生以下输出 -
{ "acknowledged" : true, "deletedCount" : 1 }使用 find() 方法显示集合中的所有文档 -
> db.demo448.find();
这将产生以下输出 -
{ "_id" : ObjectId("5e7a291cbbc41e36cc3caeca"), "Name" : "Chris", "Age" : 21 }
{ "_id" : ObjectId("5e7a2930bbc41e36cc3caecc"), "Name" : "Bob", "Age" : 22 }以下是实现 findOneAndDelete() 的查询 -
> db.demo448.findOneAndDelete({"_id":ObjectId("5e7a2930bbc41e36cc3caecc")});这将产生以下输出 -
{ "_id" : ObjectId("5e7a2930bbc41e36cc3caecc"), "Name" : "Bob", "Age" : 22 }使用 find() 方法显示集合中的所有文档 -
> db.demo448.find();
这将产生以下输出 -
{ "_id" : ObjectId("5e7a291cbbc41e36cc3caeca"), "Name" : "Chris", "Age" : 21 }
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP