📅  最后修改于: 2023-12-03 15:15:04.326000             🧑  作者: Mango
MongoDB中的findOneAndDelete
操作可以在集合中查找匹配的文档并将其删除。该操作具有原子性,即在执行操作期间,其他客户端不能访问或修改该文档。
db.collection.findOneAndDelete(
<filter>,
{
projection: <document>,
sort: <document>,
maxTimeMS: <number>,
collation: <document>
}
)
参数说明
<filter>
:筛选条件,与find
操作相同。projection
:可选,要返回的字段。sort
:可选,排序方式。maxTimeMS
:可选,操作的最长执行时间。collation
:可选,指定一个规则来比较字符串。findOneAndDelete
操作返回已删除的文档。如果筛选条件匹配多个文档,则只删除第一个文档。
const MongoClient = require('mongodb').MongoClient;
const uri = "mongodb+srv://<username>:<password>@<cluster>.mongodb.net/test?retryWrites=true&w=majority";
const client = new MongoClient(uri, { useNewUrlParser: true, useUnifiedTopology: true });
client.connect(err => {
const collection = client.db("test").collection("myCollection");
// 删除一个文档
collection.findOneAndDelete({ name: "John" }, function(err, result) {
console.log(result);
});
client.close();
});
以上示例中,我们删除了myCollection
集合中符合条件{ name: "John" }
的第一个文档,并将其打印在控制台上。
findOneAndDelete
是MongoDB中非常有用的操作之一。它可以帮助开发人员快速地删除文档,而不必先查询文档,然后再将其删除。请注意,findOneAndDelete
操作是原子性的,可确保在执行操作时不会出现任何其他客户端的访问或修改。