Página inicial do Docs → Desenvolver aplicações → MongoDB Drivers → Controlador 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 parabulkWrite()
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.
Exemplo
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("...") } }