ใช้กรอบงานรวมร่วมกับตัวดำเนินการ $ifNull สำหรับสิ่งนี้ $concatArrays ในการรวมถูกใช้เพื่อเชื่อมอาร์เรย์ ให้เราสร้างคอลเลกชันที่มีเอกสารก่อน -
>db.concatenateArraysDemo.insertOne({"FirstSemesterSubjects": ["MongoDB","MySQL","Java"],"SecondSemesterSubjects":["C","C++",]});
{
"acknowledged" : true,
"insertedId" : ObjectId("5cd687707924bb85b3f4895c")
}
> db.concatenateArraysDemo.insertOne({"FirstSemesterSubjects":["C#","Ruby","Python"]});
{
"acknowledged" : true,
"insertedId" : ObjectId("5cd687927924bb85b3f4895d")
}
>db.concatenateArraysDemo.insertOne({"FirstSemesterSubjects":["HTML","CSS","Javascript"],"SecondSemesterSubjects":["CSS","Javascript"]});
{
"acknowledged" : true,
"insertedId" : ObjectId("5cd687bb7924bb85b3f4895e")
} ต่อไปนี้เป็นแบบสอบถามเพื่อแสดงเอกสารทั้งหมดจากคอลเลกชันโดยใช้วิธี find() -
> db.concatenateArraysDemo.find().pretty();
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
{
"_id" : ObjectId("5cd687707924bb85b3f4895c"),
"FirstSemesterSubjects" : [
"MongoDB",
"MySQL",
"Java"
],
"SecondSemesterSubjects" : [
"C",
"C++"
]
}
{
"_id" : ObjectId("5cd687927924bb85b3f4895d"),
"FirstSemesterSubjects" : [
"C#",
"Ruby",
"Python"
]
}
{
"_id" : ObjectId("5cd687bb7924bb85b3f4895e"),
"FirstSemesterSubjects" : [
"HTML",
"CSS",
"Javascript"
],
"SecondSemesterSubjects" : [
"CSS",
"Javascript"
]
} ต่อไปนี้เป็นแบบสอบถามเพื่อเชื่อมอาร์เรย์แม้ว่าจะเป็นโมฆะ -
> db.concatenateArraysDemo.aggregate([
{$project: {
ConcatenateArrays: { '$concatArrays': [
{$ifNull: ['$FirstSemesterSubjects', []]},
{$ifNull: ['$SecondSemesterSubjects', []]}
] }
} }
]); สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
{ "_id" : ObjectId("5cd687707924bb85b3f4895c"), "ConcatenateArrays" : [ "MongoDB", "MySQL", "Java", "C", "C++" ] }
{ "_id" : ObjectId("5cd687927924bb85b3f4895d"), "ConcatenateArrays" : [ "C#", "Ruby", "Python" ] }
{ "_id" : ObjectId("5cd687bb7924bb85b3f4895e"), "ConcatenateArrays" : [ "HTML", "CSS", "Javascript", "CSS", "Javascript" ] }