烧瓶 PyMongo 字符串返回 ObjectID [重复]

Posted

技术标签:

【中文标题】烧瓶 PyMongo 字符串返回 ObjectID [重复]【英文标题】:Flask PyMongo string back to ObjectID [duplicate] 【发布时间】:2018-03-26 21:31:08 【问题描述】:

我正在使用带有 pymongo 的烧瓶,并且我的对象 ID 被转换为字符串。如何将其更改回对象 ID,以便我可以使用 if 进行查询?

From : 59d7ef576cab3d6118805a20
type is <class 'str'>

To: ObjectId("59d7ef576cab3d6118805a20")
type is <class 'bson.objectid.ObjectId'>

【问题讨论】:

【参考方案1】:

您可以使用 bson.objectid.ObjectId 从字符串创建 ObjectId。请参阅 pymongo 网站上的文档:http://api.mongodb.com/python/current/api/bson/objectid.html

例如:

from pymongo import MongoClient
from bson.objectid import ObjectId

client = MongoClient()
collection = client.test.test

print(collection.find_one("_id": ObjectId("59d7ef576cab3d6118805a20")))

bson 包与 pymongo 一起安装。您不需要安装单独的 bson 包。

【讨论】:

以上是关于烧瓶 PyMongo 字符串返回 ObjectID [重复]的主要内容,如果未能解决你的问题,请参考以下文章

烧瓶-PyMongo。如何显示从 python 到 html 的所有条目?

如何使用 flask_pymongo 将数据从 mongodb 显示到烧瓶模板?

python 在pymongo的bson.objectid,没有依赖,独立工作

使用烧瓶中的 send_file() 时文件损坏,pymongo gridfs 中的数据

使用 pymongo 在 mongoDB 中查找

MongoDB 查询语法:如何在 $in 中使用 $isNull (pymongo api)