MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Erro Pymongo para ArrayFilters atualizar vários subdocumentos


Se você olhar para o código-fonte de pymongo , você verá que o update a função não receberá nenhum parâmetro sobre arrayFilters , então você tem que usar update_one , que aceitaria um parâmetro opcional chamado array_filters :
db.dept.update_one(
    {"emps._id" : {"$gte" : 1111, "$lte" : 1114}},
    {"$inc" : {"emps.$[idx].salary" : 20000}}, 
    upsert=True,
    array_filters=[{"idx._id" : {"$gte" : 1111,  "$lte"  : 1114}}]
)