我有一个800个ish文档的集合,我想通过添加一个基于另一个字段的新字段,从该集合中创建一个新文档,如下所示:
基本上我的foo_collection文档包含一个已设置为字符串的字段,但是我想通过“将其值转换为猫鼬ID”将其转换为新字段:
到目前为止,我仍然尝试过此操作,但出现错误:无效的onjectId:长度
db.getCollection('foo_collection').aggregate([
{
"$addFields ":{
"bar" : ObjectId("$bar_id")
}
},
{"$out":"new_foo_collection"}
])
预期结果是一个包含文档的新集合,该文档的另一个“栏”字段的值为ObjectId()
感谢您的帮助!
答案 0 :(得分:2)
Mongodb 4.0 引入了$toObjectId
聚合,可将字符串值转换为ObjectId ...因此您可以使用此
db.getCollection('foo_collection').aggregate([
{ "$addFields": {
"bar" : { "$toObjectId": "$bar_id" }
}},
{ "$out": "new_foo_collection" }
])