Python 列表与 MongoDB 插入
我需要帮助来理解这里发生了什么,并且希望能得到一些建议来避免这个问题!
这是我的代码片段:
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
或者你可以这样做:
rows['_id'] = str(rows['_id'])
记得如果之后需要更新的话,要把它改回来哦。
1
在MongoDB中,每个保存的文档都需要有一个叫做'_id'
的字段,这个字段在同一个集合中的文档里必须是唯一的。如果你没有提供这个字段,MongoDB会自动生成一个,使用的是一种叫做ObjectId
的东西(在pymongo中是bson.objectid.ObjectId
)。
如果你需要把文档导出为json格式,你必须在转换成json之前先去掉'_id'
这个字段。