我正在尝试获得这样的值:name_5ab9c3da31c2ab715d421285
db.getCollection('name').aggregate([
{
$project:
{
newValue: { $concat: [ "name", "_", "$_id" ]}
}
}
])
我收到这个错误:$concat 只支持字符串,不支持 objectId
我试过改变
"$_id"
至 ObjectId("$_id").str
但仍然是同样的错误。我使用的是 mongo 3.6,所以我不能使用 $toString。任何想法如何解决这个问题?
最佳答案
MongoDB 4.0 引入了这个特性 $toString。
用法 (在你的情况下)
db.getCollection('name').aggregate([
{
$project:
{
_id: {
$toString: "$_id"
}
newValue: { $concat: [ "name", "_", "$_id" ]}
}
}
])
关于mongodb - 如何在聚合中使用_id?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51539042/