如何将 mongodb (pymongo) return _id 作为键值对作为响应而不是对象结构?

How to have mongodb (pymongo) return _id as key value pair in response instead of object structure?

我正在将 pymongo 与烧瓶一起使用。 在我的用例中,我可以将 mongodb 的文档 _id 作为整数(从关系存储迁移的数据)或 monogo 的 ObjectId()(生成)。

在获取响应中,我分别在每种情况下得到类似的信息:

第一种情况(带整数 id):

{
    "_id": 123456,
     "name": "something.."
}

第二种情况 ObjectId()

{
    "_id":
        {
           "$oid": "55f5efc60640fd09620c109c"
        },
     "name": "something.."
}

我想在这两种情况下都有统一的结构 - 所以我希望第二种情况像 -

{
    "_id": "55f5efc60640fd09620c109c",
     "name": "something.."
}

如何实现? 除了遍历每个结果并替换值之外?

找到了我的问题的解决方案,分享可以帮助其他人。

在 mongo 中没有架构,因此您可以将 _id 的值作为任何值(integer/object/string,就像我的情况一样)。

在python中,我这样做是为了拥有命令键值对结构:

from bson.objectid import ObjectId
new_doc = db.collection.insert({'_id': str(ObjectId())})  // This won't create additional _id field in your document.

找到类似的:

doc = db.collections.find_one({'_id': "12-char-mongodb-type-id"})
doc = db.collections.find_one({'_id': 12345})