无法在python中添加从mongo返回的对象的属性

时间:2016-07-16 19:38:01

标签: python mongodb pymongo

我使用Python从Mongo获取数据。我将光标中的所有文档移动到一个数组中。然后我处理文档并尝试向对象/字典添加一些新属性,但它说KeyError。我在尝试修改mongo返回的对象时,在Nodejs中看到过这种行为,解决方案是query.lean()。exec()来获取普通对象。 pymongo有同等效力吗?

1 个答案:

答案 0 :(得分:0)

在pict上设置新键时,不会引发 KeyError。这意味着你做错了什么。

查看引发KeyError的时间:https://stackoverflow.com/a/10116540/4273834

回顾一下:如果您尝试设置密钥而不是尝试为不存在的密钥获取值,则不会引发KeyError。

这是一个有效的代码片段:

cursor = col.find({})
my_list = list(cursor)
my_list[0]['added_field'] = 'whatever'

只是旁注:list(游标)不是如何在python中处理数据的方式。推荐的方法是直接循环游标(除非有特定的理由要有列表......):

for doc in cursor:
    doc['new_key'] = 'test'
    do_whatever_you_want_with_the_doc(doc)