MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Errore Pymongo per ArrayFilters per aggiornare più documenti secondari

Se guardi nel codice sorgente di pymongo , scoprirai che l'update la funzione non riceverà alcun parametro su arrayFilters , quindi devi usare update_one , che accetterebbe un parametro facoltativo denominato 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}}]
)