หากต้องการต่อใน MongoDB ให้ใช้ $concat ใน $project ให้เราสร้างคอลเลกชันที่มีเอกสาร -
> db.demo359.insertOne(
... {
...
... Name1: "Chris",
... Name2: "David",
... Subjects: ["MySQL","MongoDB","Java"]
... }
... );
{
"acknowledged" : true,
"insertedId" : ObjectId("5e5694cdf8647eb59e5620d0")
} แสดงเอกสารทั้งหมดจากคอลเล็กชันโดยใช้วิธี find() -
> db.demo359.find().pretty();
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
{
"_id" : ObjectId("5e5694cdf8647eb59e5620d0"),
"Name1" : "Chris",
"Name2" : "David",
"Subjects" : [
"MySQL",
"MongoDB",
"Java"
]
} ต่อไปนี้เป็นแบบสอบถามเพื่อเชื่อมค่าของอาร์เรย์กับฟิลด์อื่น -
> db.demo359.aggregate([
... {
... $project: {
... values: {
... $reduce: {
... input: '$Subjects',
... initialValue: '',
... in: {
... $concat: ['$$value',' ','$$this']
... }
... }
... },
... Name1: 1
... }
... },
... {
... $project: {
... 'ConcatResult': { '$concat': [ '$Name1', '$values'] }
... }
... }
... ])
{ "_id" : ObjectId("5e5694cdf8647eb59e5620d0"), "ConcatResult" : "Chris MySQL MongoDB Java" } สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
{ "_id" : ObjectId("5e5694cdf8647eb59e5620d0"), "ConcatResult" : "Chris MySQL MongoDB Java" }