在 MongoDB 中将 ObjectId 转换为 str
Posted
技术标签:
【中文标题】在 MongoDB 中将 ObjectId 转换为 str【英文标题】:Convert ObjectId to str in MongoDB 【发布时间】:2021-05-05 00:20:56 【问题描述】:我正在将 MongoDB 与 Python 和 MongoEngine 一起使用。我想在每次数据库查询后将所有_id
从ObjectId
转换为str
。有什么方法可以自动执行此操作,或者是否有任何函数递归地遍历对象/对象数组并将所有ObjectId
替换为str
?现在,我必须手动使用$toString
:
class User(Document):
name = StringField()
users = User.objects.aggregate([
"$set": "$toString": "_id": "$_id"
])
如果我使用$lookup
,数组中会嵌套_id
,所以我必须使用$map
。
【问题讨论】:
ObjectId
转换成字符串的原因是什么?我想不出任何有用的理由。
这是不可能的,_id
是不可变的。
试试 $convert...
【参考方案1】:
如果 sampleDocument
是从 MongoDB 获取的对象,则下面的 sn-p 将为您提供来自 ObjectId
的字符串:
str(sampleDocument ._id)
【讨论】:
以上是关于在 MongoDB 中将 ObjectId 转换为 str的主要内容,如果未能解决你的问题,请参考以下文章
如何在nodejs mongodb本机驱动程序中将字符串转换为ObjectId?
在 MongoDB 中将 ObjectId 与 Mongoose 一起使用
在 mongoose 4.6.0 中将字符串转换为 ObjectId 失败