db.stuff 中的文档是:
{ ...,
counts : [ {name: Alice, age: 18, pay: 27}, {name : Jen, age: 23, pay: 56}, ... ] ,
... }
我正在使用以下代码来尝试一一更新嵌入式文档。我遍历嵌入的文档,执行计算,然后想在每个单独的子文档中设置一个新键。
x = [3, 45, 77, 61, 98, 76, 32, ... ]
for i in db.stuff.find():
for element in i['counts']:
x.append(element['pay'])
total = 1.0 - ((sorted(x).index(element['pay']) + 1) / float(len(x)))
db.stuff.update({'id': i['id']}, {'$set':{ element['new_key'] :total}})
x.remove(element['pay'])
但是,这返回<type 'exceptions.KeyError'>
or < class 'bson.erros.InvalidDocument' >
,我相信这是因为我没有将新密钥插入嵌入文档的正确方法。我需要找到一个替代品,{'$set':{ element['new_key'] :total}
但我被困住了。谢谢您的帮助。