需要帮助了解这里发生的事情以及避免这种情况的建议!
这是我的代码:
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。
请建议!
答案 0 :(得分:1)
保存在mongodb中的每个文档都需要'_id'
字段 - 该字段必须在集合中的文档中是唯一的。如果你不提供,mongodb将自动创建一个ObjectId
(bson.objectid.ObjectId
为pymongo)
如果您需要将文档导出到json,则必须弹出' _id' jsonifying它之前的领域。
答案 1 :(得分:0)
或者您可以使用:
rows['_id'] = str(rows['_id'])
如果您需要更新
,请记得将其重新设置