在mongo java驱动程序3.12中的MongoCollection.deleteMany中使用WriteConcern

在mongo java驱动程序3.12中的MongoCollection.deleteMany中使用WriteConcern,java,mongodb,mongodb-java,mongo-java-driver,mongo-collection,Java,Mongodb,Mongodb Java,Mongo Java Driver,Mongo Collection,我正在使用mongo-java-driver-3.12.X版本。 我想更改不推荐使用的API DBCollection.remove(query, WriteConcern.UNACKNOWLEDGED); 到 有没有办法指定WriteConcern 如果未指定WriteConcern,默认行为是什么 您可以在中轻松找到此信息 WriteConcern可以设置为3.12版本的多个级别,如下所示 MongoClient: mongoclientations options=mongoclient

我正在使用mongo-java-driver-3.12.X版本。 我想更改不推荐使用的API

DBCollection.remove(query, WriteConcern.UNACKNOWLEDGED);

  • 有没有办法指定WriteConcern
  • 如果未指定WriteConcern,默认行为是什么

  • 您可以在中轻松找到此信息

    WriteConcern可以设置为3.12版本的多个级别,如下所示

    MongoClient:
    mongoclientations options=mongoclientations.builder().writeConcern(writeConcern.UNACKNOWLEDGED).build();
    MongoClient MongoClient=新的MongoClient(Arrays.asList(
    新服务器地址(“主机1”,27017),
    新服务器地址(“主机1”,27018)),选项);
    
    或者使用连接字符串

    MongoClient MongoClient=new MongoClient(new MongoClientURI(“mongodb://host1:27017,host2:27017/?w=未确认“);
    
    蒙哥达巴酶
    MongoDatabase=mongoClient.getDatabase(“test”)。带有WriteConcern(WriteConcern.UNACKNOWLEDGED);
    
    蒙戈集合 这就是你感兴趣的案例

    MongoCollection collection=database.getCollection(“餐厅”)。带有WriteConcern(WriteConcern.UNACKNOWLEDGED);
    collection.deleteMany(查询);
    
    请记住,MongoCollection和MongoDatabase是不可变的,因此使用WriteConcern调用将创建一个新实例,并且对原始实例没有影响


    对于默认行为,您需要检查,因为它取决于您的mongodb版本。

    理想情况下,您会期望默认的
    WriteConcern
    mongoClient
    初始化时所用的一致……如果不是这样,那么驱动程序的默认值是什么。我想我需要的是
    WriteConcern.ACKNOWLEDGED
    来回退.MongoCollection.withWriteConcern(WriteConcern.UNACKNOWLEDGED)。谢谢
    MongoCollection.deleteMany(query)