Menu Docs

Página inicial do DocsDesenvolver aplicaçõesMongoDB DriversControlador Node.js

Realizar operações em massa

O método bulkWrite() executa operações de gravação em lote em uma coleção. Esse método reduz o número de viagens de ida e volta de rede do aplicativo para o servidor, o que, portanto, aumenta a taxa de transferência e o desempenho. As gravações em massa retornam uma coleção de resultados para todas as operações somente depois que todas as operações passadas para o método forem concluídas.

Você pode especificar uma ou mais das seguintes operações de gravação no bulkWrite():

  • insertOne

  • updateOne

  • updateMany

  • deleteOne

  • deleteMany

  • replaceOne

O método bulkWrite() aceita os seguintes parâmetros:

  • operations: especifica as operações de gravação em massa a serem executadas. Passe cada operação para bulkWrite() como um objeto em uma array. Para obter exemplos que mostram a sintaxe de cada operação de gravação, consulte a documentação da API do BulkWrite.

  • options: configurações opcionais que afetam a execução da operação, como se as operações de gravação fossem executadas em ordem sequencial e a write concern.

    Por padrão, o MongoDB executa operações de gravação em massa, uma a uma, na ordem especificada (em série). Durante uma gravação em massa ordenada, se ocorrer um erro durante o processamento de uma operação, o MongoDB retornará sem processar as operações restantes na lista. Em contraste, quando ordered é false, o MongoDB continua processando as operações de gravação restantes na lista. As operações não ordenadas são teoricamente mais rápidas, pois o MongoDB pode executá-las em paralelo, mas só as usa se as gravações não dependerem da ordem.

Se você criar um índice com uma restrição de índice exclusivo , poderá encontrar um erro de gravação de chave duplicada durante uma operação no seguinte formato:

Error during bulkWrite, BulkWriteError: E11000 duplicate key error collection: ...

Da mesma forma, se você tentar executar uma gravação em massa em uma coleção que usa validação de esquema, poderá encontrar avisos ou erros relacionados à formatação de documentos inseridos ou modificados.

O exemplo de código a seguir executa uma operação de gravação em massa na coleção theaters do banco de dados sample_mflix . O exemplo de chamada para bulkWrite() inclui exemplos de operações de gravação insertOne, updateMany e deleteOne:

Observação

Você pode utilizar este exemplo para se conectar a uma instância do MongoDB e interagir com um banco de dados que contém dados de amostra. Para saber mais sobre como se conectar à sua instância do MongoDB e carregar um conjunto de dados de amostra, consulte o Guia de exemplos de uso.

A execução do exemplo anterior resulta na seguinte saída:

BulkWriteResult {
insertedCount: 2,
matchedCount: 1,
modifiedCount: 1,
deletedCount: 0,
upsertedCount: 0,
upsertedIds: {},
insertedIds: {
'0': new ObjectId("..."),
'1': new ObjectId("...")
}
}
← Fique atento às mudanças