文档菜单
文档首页
/ / /
Java响应式流驱动程序
/

写入关注点

本页内容

  • 概述
  • 在部署级别配置写入关注点
  • 在数据库或集合级别配置写入关注点
  • 组合读取关注点、读取首选项和写入关注点
  • 附加信息

在本指南中,您可以了解如何使用Java响应式流驱动程序来指定写入关注点。写入关注点描述了MongoDB对写入操作请求的确认级别。

您可以在以下级别配置写入关注点

  • 针对您的MongoDB部署

  • 针对您的数据库

  • 针对您的集合

您可以通过以下方式在部署级别配置写入关注点

  • 通过创建一个MongoClientSettings实例,如下所示代码

    MongoClient mongoClient = MongoClients.create(MongoClientSettings.builder()
    .applyConnectionString(new ConnectionString("mongodb://host1,host2"))
    .writeConcern(WriteConcern.MAJORITY)
    .build());
  • 通过创建一个ConnectionString实例,如下所示代码

    MongoClient mongoClient =
    MongoClients.create("mongodb://host1:27017,host2:27017/?w=majority");

您可以通过以下方式在数据库或集合级别配置写入关注点

  • MongoDatabase中使用withWriteConcern()方法,如下所示代码

    MongoDatabase database = mongoClient.getDatabase("test").withWriteConcern(WriteConcern.MAJORITY);
  • MongoCollection中使用withWriteConcern()方法,如下所示代码

    MongoCollection<Document> collection = database
    .getCollection("restaurants")
    .withWriteConcern(WriteConcern.MAJORITY);

MongoDatabaseMongoCollection 实例是不可变的。在现有的 MongoDatabaseMongoCollection 实例上调用 withWriteConcern() 方法将返回一个新的实例,并且不会影响被调用的实例。

在以下示例中,collWithWriteConcern 实例具有 majority 的写入关注度,而 collection 的读取优先级不受影响

MongoCollection<Document> collWithWriteConcern = collection
.withWriteConcern(WriteConcern.MAJORITY);

您可以将 MongoClientSettingsMongoDatabaseMongoCollection 实例构建为包含读取关注点、读取优先级和写入关注点的组合。

例如,以下代码在集合级别设置了所有三个参数

Collection = database.getCollection("restaurants")
.withReadPreference(ReadPreference.primary())
.withReadConcern(ReadConcern.MAJORITY)
.withWriteConcern(WriteConcern.MAJORITY);

要了解更多关于写入关注点的信息,请参阅写入关注点指南,位于 MongoDB 服务器手册中。

返回

GridFS