【发布时间】:2017-08-23 09:09:42
【问题描述】:
我在一个集合中有很多文档。 集合中每个文档的结构如下:
{
"_id" : ObjectId(....),
"valor" : {
"AB" : {
"X" : 0.0,
"Y" : 142.6,
},
"FJ" : {
"X" : 0.2,
"Y" : 3.33
....
该集合目前有大约 200 个文档,我注意到 valor 中的一个键名称错误。在这种情况下,我们将在集合的所有文档中说“FJ”应为“JOF”。
我很确定可以使用 pymongo 的 update 函数更改所有文档中的密钥。我面临的问题是,当我访问可用的在线文档https://docs.mongodb.com/v3.0/reference/method/db.collection.update/ 时,只解释了如何更改值(我想保持它们当前的状态并只更改键)。
这是我尝试过的:
def multi_update(spec_key,key_updte):
rdo=col.update((valor.spec_key),{"$set":(valor.key_updte)},multi=True)
return rdo
print(multi_update('FJ','JOF'))
但输出 name 'valor' is not defined 。我想我应该使用 valor.specific_key 来访问相应的 json
如何仅在集合的文档中更新密钥?
【问题讨论】: