Python列表和MongoDB插入

时间:2013-03-14 03:57:24

标签: python mongodb pymongo

需要帮助了解这里发生的事情以及避免这种情况的建议!

这是我的代码:

      result = [list of dictionary objects(dictionary objects have 2 keys and 2 String values)]
      copyResults = list(results);
      ## Here I try to insert each Dict into MongoDB (Using PyMongo)
      for item in copyResults:
        dbcollection.save(item) # This is all saving fine in MongoDB.

但是当我再次循环通过原始结果列表时,它会显示添加了新字段的字典对象 自动是MongoDB的ObjectId!

稍后在代码中我需要将原始结果列表转换为json,但是这个ObjectId导致了问题。不知道为什么这会被添加到原始列表中。

我已经尝试过复制或创建新列表等。保存后它仍会在原始列表中添加ObjectId。

请建议!

2 个答案:

答案 0 :(得分:1)

保存在mongodb中的每个文档都需要'_id'字段 - 该字段必须在集合中的文档中是唯一的。如果你不提供,mongodb将自动创建一个ObjectIdbson.objectid.ObjectId为pymongo)

如果您需要将文档导出到json,则必须弹出' _id' jsonifying它之前的领域。

答案 1 :(得分:0)

或者您可以使用:
rows['_id'] = str(rows['_id'])

如果您需要更新

,请记得将其重新设置