MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Erreur Pymongo pour ArrayFilters pour mettre à jour plusieurs sous-documents

Si vous examinez le code source de pymongo , vous constaterez que la update la fonction ne recevra aucun paramètre sur arrayFilters , vous devez donc utiliser update_one , qui accepterait un paramètre facultatif nommé 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}}]
)