在 MongoDB 中将 ObjectId 转换为 str

Posted

技术标签:

【中文标题】在 MongoDB 中将 ObjectId 转换为 str【英文标题】:Convert ObjectId to str in MongoDB 【发布时间】:2021-05-05 00:20:56 【问题描述】:

我正在将 MongoDB 与 Python 和 MongoEngine 一起使用。我想在每次数据库查询后将所有_idObjectId 转换为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 失败

在 mongoose 4.6.0 中将字符串转换为 ObjectId 失败

无法在 NodeJS 中将字符串转换为 ObjectId

无法在 NodeJS 中将字符串转换为 ObjectId