Để nối trong MongoDB, hãy sử dụng $ concat trong $ project. Hãy để chúng tôi tạo một bộ sưu tập với các tài liệu -
> db.demo359.insertOne(
... {
...
... Name1: "Chris",
... Name2: "David",
... Subjects: ["MySQL","MongoDB","Java"]
... }
... );
{
"acknowledged" : true,
"insertedId" : ObjectId("5e5694cdf8647eb59e5620d0")
} Hiển thị tất cả các tài liệu từ một bộ sưu tập với sự trợ giúp của phương thức find () -
> db.demo359.find().pretty();
Điều này sẽ tạo ra kết quả sau -
{
"_id" : ObjectId("5e5694cdf8647eb59e5620d0"),
"Name1" : "Chris",
"Name2" : "David",
"Subjects" : [
"MySQL",
"MongoDB",
"Java"
]
} Sau đây là truy vấn để nối các giá trị của mảng với các trường khác -
> 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" } Điều này sẽ tạo ra kết quả sau -
{ "_id" : ObjectId("5e5694cdf8647eb59e5620d0"), "ConcatResult" : "Chris MySQL MongoDB Java" }