How do I concatenate values from two fields and put it into a third one, the values are strings. I've tried this:
db.collection.update({"_id" : { $exists : true }},
{$set: {column_2:{$add:['$column_4',
'$column_3']}}},
false, true)
doesn't seem to work though, throws not ok for storage
. I've also tried this:
db.collection.update({"_id" : { $exists : true }},
{$set: {column_2:{$add:['a',
'b']}}},
false, true)
but even this shows the same error not ok for storage
.
I want to concatenate only on the mongo server and not in my application.
db.collection.update( {"_id" :{"$exists":true}},[{"$set":{"column_2":{"$concat":["$column_4","$column_3"]}}}]
in my case this
$concat
worked for me ...You can also follow the below.
Building on the answer from @rebe100x, as suggested by @Jamby ...
You can use $project, $concat and $out (or $merge) in an aggregation pipeline. https://docs.mongodb.org/v3.0/reference/operator/aggregation/project/ https://docs.mongodb.org/manual/reference/operator/aggregation/concat/ https://docs.mongodb.com/manual/reference/operator/aggregation/out/
For example:
With MongoDB 4.2 . . .
MongoDB 4.2 adds the $merge pipeline stage which offers selective replacement of documents within the collection, while $out would replace the entire collection. You also have the option of merging instead of replacing the target document.
You should consider the trade-offs between performance, concurrency and consistency, when choosing between $merge and $out, since $out will atomically perform the collection replacement via a temporary collection and renaming.
https://docs.mongodb.com/manual/reference/operator/aggregation/merge/ https://docs.mongodb.com/manual/reference/operator/aggregation/merge/#merge-out-comparison
let suppose that you have a collection name is "myData" where you have data like this
and you want concatenate fields (first_name+ last_name +address) and save it into "address" field like this
now write query will be
You could use
$set
like this in 4.2 which supports aggregation pipeline in update.This is a solution!!