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}}]
)