柚子 u=10=u
Pymongo update_one
我有 JSON 如下所示
{"city": "New York"}, {"$set": {"city": "Toronto"}}
当我直接在update_one方法中给出这个时
database.collection.update_one({"city": "New York"}, {"$set": {"city": "Toronto"}})
效果很好,没问题。
但是当我分配给
这样的变量时
temp = {"city": "New York"}, {"$set": {"city": "Toronto"}}
database.collection.update_one(temp)
这给我以下错误:
TypeError("update_one() missing 1 required positional argument: 'update'",)
我用过
json.loads(temp)
以及
json.dumps(temp)
不适合我?任何想法。
问题是当你这样做时:
database.collection.update_one({"city": "New York"}, {"$set": {"city": "Toronto"}})
你正确地传递了两个位置参数:第一个(对应于filter
)是{"city": "New York"}
,第二个(对应于update
)是{"$set": {"city": "Toronto"}}
.
但是当你这样做时:
temp = {"city": "New York"}, {"$set": {"city": "Toronto"}}
database.collection.update_one(temp)
您现在正在传递一个 单个 位置参数,它是一个元组,因此会出现有关缺少参数的错误消息。
您需要做的是:
a) 将元组展开为位置参数:
temp = {"city": "New York"}, {"$set": {"city": "Toronto"}}
database.collection.update_one(*temp) # Notice the "*" here
b) 传递多个位置参数:
filter, update = {"city": "New York"}, {"$set": {"city": "Toronto"}} # Tuple expanded here, as two variable
database.collection.update_one(filter, update)
我有 JSON 如下所示
{"city": "New York"}, {"$set": {"city": "Toronto"}}
当我直接在update_one方法中给出这个时
database.collection.update_one({"city": "New York"}, {"$set": {"city": "Toronto"}})
效果很好,没问题。
但是当我分配给
这样的变量时temp = {"city": "New York"}, {"$set": {"city": "Toronto"}}
database.collection.update_one(temp)
这给我以下错误:
TypeError("update_one() missing 1 required positional argument: 'update'",)
我用过
json.loads(temp)
以及
json.dumps(temp)
不适合我?任何想法。
问题是当你这样做时:
database.collection.update_one({"city": "New York"}, {"$set": {"city": "Toronto"}})
你正确地传递了两个位置参数:第一个(对应于filter
)是{"city": "New York"}
,第二个(对应于update
)是{"$set": {"city": "Toronto"}}
.
但是当你这样做时:
temp = {"city": "New York"}, {"$set": {"city": "Toronto"}}
database.collection.update_one(temp)
您现在正在传递一个 单个 位置参数,它是一个元组,因此会出现有关缺少参数的错误消息。
您需要做的是:
a) 将元组展开为位置参数:
temp = {"city": "New York"}, {"$set": {"city": "Toronto"}}
database.collection.update_one(*temp) # Notice the "*" here
b) 传递多个位置参数:
filter, update = {"city": "New York"}, {"$set": {"city": "Toronto"}} # Tuple expanded here, as two variable
database.collection.update_one(filter, update)