이를 위해 $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" ] }
다음은 null −
일 때도 배열을 연결하는 쿼리입니다.> 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" ] }