我正在尝试获得这样的价位:name_5ab9c3da31c2ab715d421285
db.getCollection('name').aggregate([
{
$project:
{
newValue: { $concat: [ "name", "_", "$_id" ]}
}
}
])
我收到此错误:$ concat仅支持字符串,不支持objectId
我尝试将"$_id"
更改为ObjectId("$_id").str
,但仍然是相同的错误。
我正在使用mongo 3.6,所以不能使用$ toString。任何想法如何解决这个问题?
答案 0 :(得分:1)
MongoDB 4.0引入了$ toString此功能。
用法(在您的情况下)
db.getCollection('name').aggregate([
{
$project:
{
_id: {
$toString: "$_id"
}
newValue: { $concat: [ "name", "_", "$_id" ]}
}
}
])
答案 1 :(得分:0)
您必须使用 ObjectId.toString()。