手动工作命令需要 Pymongo (Python Flask) 等效命令:
db.UserInfoCollection.update({ "id" : "6efb83dc365fb6bdb3b78a9a"},
{$set: {'testArrayLevel1.$[i].testArrayLevel2.$[j].status':"registered"}},
{arrayFilters:[{"i.user_name":"test_user1"}, {"j.user_type": "basic"}]})
上面的命令在手动 Mongodb 提示符下更新了数据库,没有任何问题。
尝试了以下方法(update 和 update_one 以及 arrayFilters 和 array_filters):
mongo.db.UserInfoCollection.update_one({'id': id}, {"$set": {'testArrayLevel1.$[i].testArrayLevel2.$[j].status':"registered"}},{"array_filters":[{"i.user_name":user_name}, {"j.user_type": user_type}]}, upsert=False)
此命令在 Python Flask 代码中执行时会出错:
**TypeError: update_one() got multiple values for argument 'upsert'**
mongo.db.UserInfoCollection.update_one({'id': id}, {"$set": {'testArrayLevel1.$[i].testArrayLevel2.$[j].status':"registered"}},{"array_filters":[{"i.user_name":user_name}, {"j.user_type": user_type}]})
此命令在 Python Flask 代码中执行时会出错: TypeError: upsert must be True or False
我在 Pymongo 中的工作命令中缺少一些东西。任何帮助在这里表示赞赏。