db.collection.initializeOrderedBulkOp()
Nesta página
Dica
O MongoDB também fornece o método db.collection.bulkWrite()
para executar operações de gravação em massa.
Definição
db.collection.initializeOrderedBulkOp()
Importante
Método mongosh
Esta página documenta um método
mongosh
. Esta não é a documentação para um driver específico de idioma, como Node.js.For MongoDB API drivers, refer to the language-specific MongoDB driver documentation.
Inicializa e retorna um novo construtor de operações do
Bulk()
para uma coleção. O construtor constrói uma lista ordenada de operações de gravação que MongoDB executa em massa.Retorna: novo objeto de construtor de operações Bulk()
.
Compatibilidade
Esse comando está disponível em implantações hospedadas nos seguintes ambientes:
MongoDB Atlas: o serviço totalmente gerenciado para implantações do MongoDB na nuvem
Observação
This command is supported in all MongoDB Atlas clusters. For information on Atlas support for all commands, see Unsupported Commands.
Comportamento
Ordem de operação
Com uma lista de operações ordenadas, o MongoDB executa as operações de gravação na lista serialmente.
Execução de operações
Ao executar uma lista ordered
de operações, o MongoDB agrupa as operações por operation type
e contiguidade, ou seja, operações contíguas do mesmo tipo são agrupadas. Por exemplo, se uma lista ordenada tiver duas operações de inserção seguidas por uma operação de atualização seguida por outra operação de inserção, o MongoDB agrupa as operações em três grupos separados: o primeiro contém as duas operações de inserção, o grupo contém a operação de atualização e o terceiro contém a última operação de inserção. Esse comportamento está sujeito a alterações em versões futuras.
Operações Bulk()
em mongosh
e métodos comparáveis nos drivers não têm um limite para o número de operações em um grupo. Para ver como as operações são agrupadas para execução de operações em massa, chame Bulk.getOperations()
após a execução.
Veja também:
Em geral, a execução de uma lista ordered
de operações em uma coleção fragmentada em geral será mais lenta do que a execução de uma lista unordered
, pois com uma lista ordenada, cada operação deve aguardar a conclusão da operação anterior.
Error Handling
Se ocorrer um erro durante o processamento de uma das operações de gravação, o MongoDB retornará sem processar as operações de gravação restantes na lista.
Exemplos
O seguinte inicializa um construtor de operações Bulk()
na users
collection, adiciona uma série de operações de gravação e executa as operações:
var bulk = db.users.initializeOrderedBulkOp(); bulk.insert( { user: "abc123", status: "A", points: 0 } ); bulk.insert( { user: "ijk123", status: "A", points: 0 } ); bulk.insert( { user: "mop123", status: "P", points: 0 } ); bulk.find( { status: "D" } ).delete(); bulk.find( { status: "P" } ).update( { $set: { comment: "Pending" } } ); bulk.execute();
Veja também: