Dica
O MongoDB também fornece o método db.collection.bulkWrite() para executar operações de gravação em massa.
Descrição
- Bulk.find.updateOne(<update>)
- Adiciona uma única operação de atualização de documento a uma lista de operações em massa. - Use o método - Bulk.find()para especificar a condição que determina qual documento atualizar. O método- Bulk.find.updateOne()limita a atualização a um único documento. Para atualizar vários documentos, consulte- Bulk.find.update().- Bulk.find.updateOne()aceita o seguinte parâmetro:ParâmetroTipoDescrição- documento ou pipeline - As modificações a serem aplicadas. Podem ser uma dos seguintes: - Um documento de substituição - Contém apenas pares de campos e valores. - Consulte também - Bulk.find.replaceOne().- Atualizar documento - Contém somente atualizar expressões do operador. - Pipeline de agregação - Contém apenas os seguintes estágios de agregação: - $addFieldse seu alias- $set
- $replaceRoote seu alias- $replaceWith
 - Para obter mais informações sobre o parâmetro de modificação de atualização, consulte a página de referência - db.collection.updateOne().- A soma do documento - <query>associado do- Bulk.find()e do documento de atualização deve ser menor ou igual ao tamanho máximo do documento BSON.- Para especificar um upsert: true para esta operação, utilize com - Bulk.find.upsert().
- Para especificar - arrayFilterspara atualizar elementos de array específicos, utilize com- Bulk.find.arrayFilters().
- Para especificar o índice a utilizar para o - Bulk.find()associado, consulte- Bulk.find.hint().
- Para substituir um documento por atacado, consulte também - Bulk.find.replaceOne().
 
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
Este comando é aceito em todos os clusters do MongoDB Atlas. Para obter informações sobre o suporte do Atlas a todos os comandos, consulte Comandos não suportados.
Comportamento
Se o documento <update> contiver apenas expressões de operador de atualização , como em:
{   $set: { status: "D" },   $inc: { points: 2 } } 
Em seguida, Bulk.find.updateOne() atualiza apenas os campos correspondentes, status e points, no documento.
Exemplo
O exemplo a seguir inicializa um Bulk() construtor de operações para a items coleção e adiciona várias updateOne() operações à lista de operações.
var bulk = db.items.initializeUnorderedBulkOp(); bulk.find( { status: "D" } ).updateOne( { $set: { status: "I", points: "0" } } ); bulk.execute(); 
Atualização com aggregation pipeline
Os métodos de atualização podem aceitar um pipeline de agregação. Por exemplo, os seguintes usos:
- o estágio - $set, que pode fornecer um comportamento semelhante à expressão do operador de atualização- $set,
- A variável de agregação - NOW, que produz a data/hora atual e pode fornecer comportamento semelhante a uma expressão de operador de atualização- $currentDate. Para acessar variáveis de agregação, prefixe a variável com cifrões duplos- $$e coloque entre aspas.
var bulk = db.items.initializeUnorderedBulkOp(); bulk.find( {  status: "P" } ).updateOne(    [       { $set: { points: 0, lastModified: "$$NOW" } }    ] ); bulk.execute();