0

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

这是我的片段:

      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。

请建议!

4

2 回答 2

1

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

如果您需要将文档导出为 json,则必须在对其进行 json 化之前弹出 '_id' 字段。

于 2013-03-14T04:14:44.763 回答
0

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

如果您需要更新,请记住将其重新设置

于 2013-03-21T12:08:51.550 回答