Menu Docs
Página inicial do Docs
/ / /
Controlador Node.js
/ /

Especifique como as operações CRUD são executadas em conjuntos de réplicas

Nesta página

  • Visão geral
  • Escreva preocupação
  • Exemplo: definir o write concern para uma única operação de escrita
  • Exemplo: recuperar e aplicar um write concern existente
  • Preocupação de leitura
  • Exemplo: definir o nível de referência de leitura de uma agregação
  • Exemplo: alterar o read concern de um banco de dados
  • readPreference
  • Exemplo: definir read preference e concerns para uma transação
  • Exemplo: definir a read preference de um cluster na connection string
  • Documentação da API

Neste guia, você pode aprender como usar as configurações de referência de escrita, referência de leitura e preferência de leitura para modificar a maneira como o MongoDB executa as operações de criação, leitura, atualização e exclusão (CRUD) em conjuntos de réplicas.

É possível definir as opções de preocupação de gravação, preocupação de leitura e preferência de leitura nos seguintes níveis:

  • Cliente, que define o padrão para todas as execuções de operações, a menos que seja substituído

  • Sessão

  • transação

  • Database

  • collection

Essa lista também indica a ordem crescente de precedência das configurações de opções. Por exemplo, se você definir um nível de read concern para uma transação, ela substituirá um nível de read concern definido para o cliente.

Essas opções permitem a você personalizar a consistência causal e a disponibilidade dos dados em seus conjuntos de réplicas.

A referência de escrita especifica o nível de confirmação solicitado ao MongoDB para operações de gravação, como uma inserção ou atualização, antes que a operação seja retornada com êxito. As operações que não especificam uma referência de escrita explícita herdam as configurações globais padrão de referência de escrita.

Para obter mais informações, consulte Write Concern no manual do servidor. Para obter documentação detalhada da API, consulte a documentação da API WriteConcern.

A tabela a seguir descreve os parâmetros WriteConcern :

Parâmetro
Tipo
Descrição
w (Opcional)
Solicita a confirmação de que a operação de escrita se propagou para um número específico de mongod instâncias ou para mongod instâncias que são rotuladas como tags especificadas
wtimeoutMS (Opcional)
número
Especifica um limite de tempo para impedir que as operações de gravação sejam bloqueadas indefinidamente
journal (Opcional)
booleano
Solicita confirmação de que a operação de escrita foi escrita no diário em disco

Este código utiliza configurações personalizadas do WriteConcern ao criar um novo documento:

myDB.myCollection.insertOne(
{ name: "anotherDocumentName" },
{ writeConcern:
{ w: 2, wtimeoutMS: 5000 }
}
);

Este código utiliza o método fromOptions() para construir um WriteConcern a partir das opções de uma referência de reconhecimento de data center existente, myDB. Observe que myDB pode ser substituído por uma referência a qualquer entidade que aceite uma opção de referência de escrita. Em seguida, a nova referência de escrita é aplicada a um documento, myDoc.

const newWriteConcern = WriteConcern.fromOptions(myDB);
const myDoc = { name: "New Document" };
WriteConcern.apply(myDoc,newWriteConcern);

A referência de leitura especifica os seguintes comportamentos:

Você pode especificar a configuração da referência de leitura utilizando o parâmetro level . O nível de referência de leitura padrão é local. Isso significa que o cliente retorna os dados do membro do conjunto de réplicas ao qual o cliente está conectado, sem garantia de que os dados tenham sido gravados em todos os membros do conjunto de réplicas. Observe que requisitos mais baixos de nível de referência de leitura podem reduzir a latência.

Para obter mais informações sobre read concern ou níveis de read concern, consulte Read Concern no manual do servidor MongoDB. Para obter mais detalhes sobre o ReadConcern tipo e definições dos níveis de read concern, consulte o ReadConcern na documentação da API.

Este código define o nível de referência de leitura de uma aggregation como "majority":

const pipeline = [
{"$match": {
category: "KITCHENWARE",
}},
{"$unset": [
"_id",
"category",
]}
];
result = await myDB.collection("mycollection")
.aggregate(
pipeline,
{ readConcern:
{ level: "available" }
}
);

Para mais informações sobre agregados, consulte a páginaAgregação do .

Este código altera o nível de referência de leitura de um reconhecimento de data center para "local":

const options = { readConcern: { level: "local" } };
const myDB = client.db("mydb", options);

A preferência de leitura determina qual membro de um conjunto de réplicas o MongoDB lê ao executar uma query. Você também pode personalizar como o servidor avalia os membros.

Para obter uma documentação da API mais detalhada,consulte a documentação da API ReadPreference.

A tabela a seguir descreve os parâmetros ReadPreference :

Parâmetro
Tipo
Descrição
mode
Especifica um requisito ou preferência de qual membro do conjunto de réplicas o servidor lê. O modo padrão, primary , especifica que as operações são lidas a partir do nó primário do conjunto de réplicas.
tags (Opcional)
Atribui tags aos membros do conjunto de réplicas secundário para personalizar como o servidor os avalia. As tags não podem ser usadas com a configuração do modo de preferência de leitura primary .
options (Opcional)
Define várias opções, incluindo hedge e maxStalenessSeconds que podem ser aplicadas à sua preferência de leitura.

Este código define a preferência de leitura, referência de leitura e referência de escrita para as operações em uma transação:

const transactionOptions = {
readPreference: "primary",
readConcern: { level: "local" },
writeConcern: { w: "majority" },
};
const session = client.startSession();
session.startTransaction(transactionOptions);
// ...
await session.commitTransaction();
await session.endSession();

Para obter mais informações sobre transação, consulte transação.

Este exemplo de código cria um MongoClient que usa o modo de preferência de leitura "secundário" ao executar query em um cluster:

const uri = "mongodb+srv://<user>:<password>@<cluster-url>?readPreference=secondary&maxStalenessSeconds=120";
const client = new MongoClient(uri);

Este exemplo também define a opção maxStalenessSeconds . Para obter mais informações sobre as opções de connection string , consulte a seção Opções de connection string no manual.

Para saber mais sobre os métodos e tipos mencionados neste guia, consulte a documentação da API abaixo:

Voltar

Operações compostas