无法识别的管道阶段名称:'$ concat'

时间:2016-09-08 17:56:09

标签: mongodb aggregation-framework

我正在使用:

db.version()

3.2.3

()版本

3.2.0-17-gde480c0

db.getCollection('events').aggregate([
    { $concat: [ "$element", " - ", "$Eventtype" ] }
])

给了我以下错误:

"assert: command failed: {
    "ok" : 0,
    "errmsg" : "Unrecognized pipeline stage name: '$concat'",
    "code" : 16436
} : aggregate failed
_getErrorWithCode@src/mongo/shell/utils.js:23:13
doassert@src/mongo/shell/assert.js:13:14
assert.commandWorked@src/mongo/shell/assert.js:266:5
DBCollection.prototype.aggregate@src/mongo/shell/collection.js:1215:5
@(shell):1:1"

我在这里做错了什么?

1 个答案:

答案 0 :(得分:2)

您正在使用$ concat作为聚合管道中的管道阶段。

请参阅here以获取阶段列表。

$ concat用作字符串修饰符以连接结果。

有关示例,请参阅here

他们倾向于在示例中的$ project管道阶段使用$ concat将文档的两个值合并为一个。

例如:

{ $project: { itemDescription: { $concat: [ "$item", " - ", "$description" ] } } }

在你的情况下,它可能看起来像......

{ $project: { event: { $concat: [ "$element", " - ", "$Eventtype" ] } } }