pymongo
のソースコードを調べると 、update
関数はarrayFilters
に関するパラメータを受け取りません 、したがって、update_one
を使用する必要があります 、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}}]
)