2016-09-08 2 views
0

Ich verwende:

db.version()

3.2.3

Version()

3.2.0-17-gde480c0

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

gibt mir die folgende Fehlermeldung:

"assert: command failed: { 
    "ok" : 0, 
    "errmsg" : "Unrecognized pipeline stage name: '$concat'", 
    "code" : 16436 
} : aggregate failed 
[email protected]/mongo/shell/utils.js:23:13 
[email protected]/mongo/shell/assert.js:13:14 
[email protected]/mongo/shell/assert.js:266:5 
[email protected]/mongo/shell/collection.js:1215:5 
@(shell):1:1" 

Was ich hier falsch mache?

Antwort

1

Sie verwenden $ concat als Pipeline-Stufe in der Aggregationspipeline.

Eine Liste der Stufen finden Sie unter here.

$ concat wird als String-Modifikator verwendet, um die Ergebnisse zu verketten.

Beispiele siehe here.

Sie neigen dazu, $ concat in einer $ -Projektpipelinestufe in den Beispielen zu verwenden, um zwei Werte eines Dokuments zu einem zu kombinieren.

Zum Beispiel:

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

in Ihrem Fall es etwas aussehen könnte ...

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

Vielen Dank! Tut mir leid, dass ich ein Idiot bin. – LienM

+0

Weit davon entfernt. Aggregation ist meiner Meinung nach der komplexeste Teil von MongoDB. Es gibt eine Menge zu tun, und es ist sehr unversöhnlich mit syntaktischen Fehlern. Zu wissen, wo man suchen und worauf man achten muss, ist der größte Teil des Kampfes. (Ich wusste nichts über die $ concat-Operator, bis ich auf Ihre Frage schaute) – dyouberg