是否有可能使用Python中的ObjectId字符串更新MongoDB字符串字段

问题描述 投票:0回答:1

所以我在MongoDB集合中有一个String数组字段,我想添加一个ObjectId的String。它被添加,但是被保存为一个ObjectId而不是一个String。

                users_collection.update_one({
                    "_id": ObjectId(user['_id'])
                }, {
                    "$push": {
                        "profile.surveys.completedInTimeSurveyIDs": "5dc71ee34283e125a9edc96b"
                    }
                })

哪个总是在收集文档中另存为:

enter image description here

但是我希望它是:

enter image description here

python-3.x mongodb objectid
1个回答
0
投票

类似,您已经在框架中定义了一个架构,并且框架知道路径所引用的值的类型(此处profile.surveys.completedInTimeSurveyIDs.$应该被指定为oid,因此字符串也照此转换)]

替代品是:

  • 根据您的规范设计架构(作为字符串)
  • 绕过框架并直接使用驱动程序(如果可能的话)
  • 考虑真正存储一个ObjectId,并在检索时修改您的代码(如果需要,可以使用str())

我建议您进行后者(如果要聚合,查找,甚至填充或涉及数组元素的任何其他工作,则可能需要一个ObjectId)

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.