ใช้โอเปอเรเตอร์ $concatArrays ใน aggregation pipeline เพื่อรวมอาร์เรย์หลายตัวเป็นอาร์เรย์เดียว สร้างคอลเลกชันตัวอย่าง:
> db.demo14.insertOne({"ListOfStudent":["Carol","Mike","Sam"],"ListOfTeacher":["Robert","David"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e0f754bd7df943a7cec4faa") }
แสดงข้อมูล:
> db.demo14.find().pretty();
ผลลัพธ์:
{ "_id" : ObjectId("5e0f754bd7df943a7cec4faa"), "ListOfStudent" : [ "Carol", "Mike", "Sam" ], "ListOfTeacher" : [ "Robert", "David" ] }
คิวรีรวมอาร์เรย์ด้วย $concatArrays:
> db.demo14.aggregate([
{ "$project": {
"ListOfPeople": { "$concatArrays": [ "$ListOfStudent", "$ListOfTeacher" ] }
}}
]);
ผลลัพธ์:
{ "_id" : ObjectId("5e0f754bd7df943a7cec4faa"), "ListOfPeople" : [ "Carol", "Mike", "Sam", "Robert", "David" ] }
ข้อมูลเพิ่มเติม
$concatArraysรองรับการรวมอาร์เรย์ 2 ตัวขึ้นไป- ลำดับสมาชิกในอาร์เรย์ผลลัพธ์จะตามลำดับของอาร์เรย์ที่ส่งเข้าไป
- หากอาร์เรย์ใดเป็น null หรือไม่มีอยู่ จะถือเป็นอาร์เรย์ว่าง
- ใช้ได้ใน
$project,$addFields,$set(MongoDB 4.2+)