Descrição
- Bulk.find.arrayFilters(<array of filter documents>)
- Determina quais elementos de array modificar para uma operação de atualização em um campo de array: - Bulk.find(<query>).arrayFilters([ <filter1>, ... ]).updateOne(<update>); - Bulk.find(<query>).arrayFilters([ <filter1>, ... ]).update(<update>); - No documento de upgrade, use o operador posicional filtrado - $[<identifier>]para definir um identificador, que você então faz referência nos documentos do filtro de matriz. Você não pode ter um documento de filtro de matriz para um identificador se o identificador não estiver incluído no documento de atualização.- O - <identifier>deve começar com uma letra minúscula e conter apenas caracteres alfanuméricos.- Você pode incluir o mesmo identificador várias vezes no documento de atualização; entretanto, para cada identificador distinto ( - $[identifier]) no documento de atualização, você deve especificar exatamente um documento de filtro de array correspondente. Ou seja, não é possível especificar vários documentos de filtro de array para o mesmo identificador. Por exemplo, se a instrução de atualização incluir o identificador- x(possivelmente várias vezes), você não poderá especificar o seguinte para- arrayFiltersque inclui 2 documentos de filtro separados para- x:- // INVALID - [ - { "x.a": { $gt: 85 } }, - { "x.b": { $gt: 80 } } - ] - No entanto, você pode especificar condições compostas no mesmo identificador em um único documento de filtro, como nos exemplos a seguir: - // Example 1 - [ - { $or: [{"x.a": {$gt: 85}}, {"x.b": {$gt: 80}}] } - ] - // Example 2 - [ - { $and: [{"x.a": {$gt: 85}}, {"x.b": {$gt: 80}}] } - ] - // Example 3 - [ - { "x.a": { $gt: 85 }, "x.b": { $gt: 80 } } - ] - Anexar ao método - Bulk.find()para especificar os filtros de array para as operações- updateOne()e- update().
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.
Exemplo
var bulk = db.coll.initializeUnorderedBulkOp(); bulk.find({}).arrayFilters( [ { "elem.grade": { $gt: 85 } } ] ).updateOne( { $set: { "grades.$[elem].mean" : 70 } } ); bulk.execute();