mongodb - 将字符串转换为objectid mongodb
问题描述
我有 800 个 ish 文档的集合,我想通过添加一个基于另一个字段的新字段来从此集合中创建一个新文档,如下所示:
基本上,我的 foo_collection 文档包含一个已设置为字符串的字段,但是我想通过将其值“转换”为猫鼬 ID 来将其转换为新字段:
到目前为止,我尝试了这个,但我得到了错误:Invalid onjectId: Length
db.getCollection('foo_collection').aggregate([
{
"$addFields ":{
"bar" : ObjectId("$bar_id")
}
},
{"$out":"new_foo_collection"}
])
预期的结果是一个新的集合,其中的文档还有 1 个字段“bar”,值为 ObjectId()
谢谢你的帮助 !
解决方案
Mongodb 4.0引入了$toObjectId
聚合来将字符串值转换为 ObjectId ......所以你可以使用这个
db.getCollection('foo_collection').aggregate([
{ "$addFields": {
"bar" : { "$toObjectId": "$bar_id" }
}},
{ "$out": "new_foo_collection" }
])
推荐阅读
- python - Spyder 5.1.5 版问题
- wordpress - WP All 导出 ACF 图片 url
- api - NestJS在dto解析错误响应后删除文件
- javascript - 从Javascript中的一组数组生成一串值
- php - 如何解决此 SMTP 服务器连接失败错误
- angular - 如何在 Promise 中使用“this”?
- reactjs - 在 MUI 的自动完成中使用 tabIndex 时出错
- python - 熊猫:两个数据帧之间的 AND 和 OR
- php - 如何根据用户输入缩放表单字段的数量?
- python - Python:根据值的范围将数据帧拆分为数据帧的字典