MongoDB Java 驱动程序 v4.3 删除文档

2021/10/2 2:11:55

本文主要是介绍MongoDB Java 驱动程序 v4.3 删除文档,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

官网地址:https://docs.mongodb.com/drivers/java/sync/current/usage-examples/deleteOne/

 

删除文档

您可以使用对象deleteOne() 上的方法从集合中删除单个文档MongoCollection。该方法接受与您要删除的文档匹配的查询过滤器。如果不指定过滤器,MongoDB 将匹配集合中的第一个文档。该 deleteOne()方法仅删除匹配的第一个文档。

此方法返回一个实例,DeleteResult其中包含的信息包括由于操作而删除了多少文档。

如果删除操作失败,驱动程序会引发异常。有关在特定条件下引发的异常类型的更多信息,请参阅deleteOne()本页底部链接的 API 文档。

以下代码段从数据库movies 集合中删除单个文档sample_mflix。该示例使用eq() 过滤器来匹配与title文本完全匹配的 电影'The Garbage Pail Kids Movie'

笔记

此示例使用连接字符串连接到 MongoDB 实例。要了解有关连接到 MongoDB 实例的更多信息,请参阅 连接指南。

 

package usage.examples;

import static com.mongodb.client.model.Filters.eq;
import org.bson.Document;
import org.bson.conversions.Bson;
import com.mongodb.MongoException;
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.result.DeleteResult;

public class DeleteOne {
    public static void main(String[] args) {
        // Replace the uri string with your MongoDB deployment's connection string
        String uri = "<connection string uri>";
        try (MongoClient mongoClient = MongoClients.create(uri)) {
            MongoDatabase database = mongoClient.getDatabase("sample_mflix");
            MongoCollection<Document> collection = database.getCollection("movies");
            Bson query = eq("title", "The Garbage Pail Kids Movie");
            try {
                DeleteResult result = collection.deleteOne(query);
                System.out.println("Deleted document count: " + result.getDeletedCount());
            } catch (MongoException me) {
                System.err.println("Unable to delete due to an error: " + me);
            }
        }
    }
}

 

运行示例时,如果您在调用中传递的查询过滤器 deleteOne()匹配文档并将其删除,您应该会看到如下所示的输出:

Deleted document count: 1

 

如果您的查询过滤器与您的集合中的文档不匹配,您的调用不会deleteOne()删除任何文档并返回以下内容:

Deleted document count: 0

 

删除多个文档

通过调用对象deleteMany()上的方法,您可以在单个操作中从集合中删除多个文档MongoCollection

要指定要删除的文档,请传递与要删除的文档匹配的查询过滤器。如果您提供一个空文档,MongoDB 会匹配集合中的所有文档并删除它们。虽然您可以使用deleteMany()删除集合中的所有文档,但请考虑改用该drop()方法以获得更好的性能。

成功删除后,此方法返回 的实例 DeleteResult。您可以通过调用实例getDeletedCount()上的方法 来检索信息,例如删除的文档数DeleteResult

如果删除操作失败,驱动程序会引发异常。有关在特定条件下引发的异常类型的更多信息,请参阅deleteMany()本页底部链接的 API 文档。

以下代码段从数据库中的movies 集合中删除多个文档sample_mflix

传递给查询筛选deleteMany()方法包含所有电影文件相匹配rating的小于1.9的在imdb 子文件。

笔记

此示例使用连接字符串连接到 MongoDB 实例。要了解有关连接到 MongoDB 实例的更多信息,请参阅 连接指南。

 

package usage.examples;

import static com.mongodb.client.model.Filters.lt;
import org.bson.Document;
import org.bson.conversions.Bson;
import com.mongodb.MongoException;
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.result.DeleteResult;

public class DeleteMany {
    public static void main(String[] args) {
        // Replace the uri string with your MongoDB deployment's connection string
        String uri = "<connection string uri>";
        try (MongoClient mongoClient = MongoClients.create(uri)) {
            MongoDatabase database = mongoClient.getDatabase("sample_mflix");
            MongoCollection<Document> collection = database.getCollection("movies");
            Bson query = lt("imdb.rating", 1.9);
            try {
                DeleteResult result = collection.deleteMany(query);
                System.out.println("Deleted document count: " + result.getDeletedCount());
            } catch (MongoException me) {
                System.err.println("Unable to delete due to an error: " + me);
            }
        }
    }
}

 

运行该示例时,您应该会看到输出报告在调用 deleteMany()。

Deleted document count: 4

 

提示 传统 API

如果您使用的是旧 API, 请参阅我们的常见问题解答页面 以了解您需要对此代码示例进行哪些更改。

 



这篇关于MongoDB Java 驱动程序 v4.3 删除文档的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程