Docs 菜单
Docs 主页
/ / /
Java Reactive Streams 驱动程序
/

写关注

在此页面上

  • Overview
  • 在部署级别配置写关注
  • 在数据库或集合级别配置写关注
  • 结合读关注、读取偏好和写关注
  • 更多信息

在本指南中,您可以学习;了解如何使用Java Reactive Streams驾驶员来指定写关注(write concern)。 写关注描述了MongoDB为写入操作请求的确认级别。

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

  • 对于MongoDB 部署

  • 对于您的数据库

  • 供您集合

您可以通过以下方式在部署级别配置写关注(write concern):

  • 通过创建一个 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");

您可以通过以下方式在数据库或集合级别配置写关注(write concern):

  • 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 Server手册中的写关注指南

后退

GridFS