Escreva preocupação
Nesta página
Visão geral
Neste guia, você pode aprender como usar o driver Java Reactive Streams para especificar uma preocupação de gravação. A preocupação com a gravação descreve o nível de confirmação solicitado ao MongoDB para operações de gravação.
É possível configurar uma write concern nos seguintes níveis:
Para sua implementação do MongoDB
Para seu banco de dados de dados
Para sua coleção
Configurar write concern no nível do sistema
Você pode configurar a preocupação de gravação no nível de sistema das seguintes maneiras:
Criando uma instância do
MongoClientSettings
, como mostrado no seguinte código:MongoClient mongoClient = MongoClients.create(MongoClientSettings.builder() .applyConnectionString(new ConnectionString("mongodb://host1,host2")) .writeConcern(WriteConcern.MAJORITY) .build()); Criando uma instância do
ConnectionString
, como mostrado no seguinte código:MongoClient mongoClient = MongoClients.create("mongodb://host1:27017,host2:27017/?w=majority");
Configurar write concern no nível do banco de dados ou da collection
Você pode configurar a preocupação de gravação no nível do banco de dados de dados ou da collection das seguintes maneiras:
Em um
MongoDatabase
usando o métodowithWriteConcern()
, conforme mostrado no código a seguir:MongoDatabase database = mongoClient.getDatabase("test").withWriteConcern(WriteConcern.MAJORITY); Em um
MongoCollection
usando o métodowithWriteConcern()
, conforme mostrado no código a seguir:MongoCollection<Document> collection = database .getCollection("restaurants") .withWriteConcern(WriteConcern.MAJORITY);
MongoDatabase
e MongoCollection
instâncias são imutáveis. Chamar withWriteConcern()
em uma instância MongoDatabase
ou MongoCollection
existente retorna uma nova instância e não afeta a instância na qual o método é chamado.
No exemplo a seguir, a instância collWithWriteConcern
tem a write concern de majority
, enquanto a read preference do collection
não é afetada:
MongoCollection<Document> collWithWriteConcern = collection .withWriteConcern(WriteConcern.MAJORITY);
Combine read concern, read preference e write concern
Você pode construir instâncias do MongoClientSettings
, MongoDatabase
ou MongoCollection
para incluir combinações de read concerns, read preferences e write concerns.
Por exemplo, o seguinte código define todos os três no nível da collection:
Collection = database.getCollection("restaurants") .withReadPreference(ReadPreference.primary()) .withReadConcern(ReadConcern.MAJORITY) .withWriteConcern(WriteConcern.MAJORITY);
Informações adicionais
Para saber mais sobre write concern, consulte o guia Write Concern no manual do MongoDB Server .