如何将 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})
我正在将 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})