Navigation

$concat (aggregation)

On this page

Definition

$concat

New in version 2.4.

Concatenates strings and returns the concatenated string.

$concat has the following syntax:

{ $concat: [ <expression1>, <expression2>, ... ] }

The arguments can be any valid expression as long as they resolve to strings. For more information on expressions, see Expressions.

If the argument resolves to a value of null or refers to a field that is missing, $concat returns null.

Examples

Consider a inventory collection with the following documents:

{ "_id" : 1, "item" : "ABC1", quarter: "13Q1", "description" : "product 1" }
{ "_id" : 2, "item" : "ABC2", quarter: "13Q4", "description" : "product 2" }
{ "_id" : 3, "item" : "XYZ1", quarter: "14Q2", "description" : null }

The following operation uses the $concat operator to concatenate the item field and the description field with a `` - `` delimiter.

db.inventory.aggregate(
   [
      { $project: { itemDescription: { $concat: [ "$item", " - ", "$description" ] } } }
   ]
)

The operation returns the following results:

{ "_id" : 1, "itemDescription" : "ABC1 - product 1" }
{ "_id" : 2, "itemDescription" : "ABC2 - product 2" }
{ "_id" : 3, "itemDescription" : null }