MongoDB 提示符中使用数组过滤器的手动工作命令需要等效的 Pymongo 命令
Need equivalent Pymongo command for for the manual working command in MongoDB prompt using array filters
手动工作命令需要 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_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 必须是 True 或 False
我在 Pymongo 中的命令结构中缺少工作命令的内容。
在此感谢任何帮助。
在 pymongo 中,你必须将 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)
手动工作命令需要 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_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 必须是 True 或 False
我在 Pymongo 中的命令结构中缺少工作命令的内容。 在此感谢任何帮助。
在 pymongo 中,你必须将 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)