Computer >> 컴퓨터 >  >> 프로그래밍 >> MongoDB

MongoDB에서 배열을 하나로 합치는 방법 – $concatArrays 연산자 완벽 가이드

MongoDB에서 두 개 이상의 배열을 하나로 합쳐야 할 때는 집계 파이프라인의 $concatArrays 연산자를 사용하면 됩니다. 이 연산자는 여러 배열 필드를 순서대로 이어 붙여 새로운 배열을 만들어 주며, MongoDB 3.2 버전부터 지원됩니다.

1. 샘플 데이터 준비하기

먼저 학생 목록과 교사 목록을 담고 있는 문서로 컬렉션을 생성해 보겠습니다.

> db.demo14.insertOne({"ListOfStudent":["Carol","Mike","Sam"],"ListOfTeacher":["Robert","David"]});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5e0f754bd7df943a7cec4faa")
}

2. 저장된 문서 확인하기

find() 메서드를 사용해 컬렉션에 저장된 모든 문서를 조회할 수 있습니다.

> db.demo14.find().pretty();

위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.

{
    "_id" : ObjectId("5e0f754bd7df943a7cec4faa"),
    "ListOfStudent" : [
        "Carol",
        "Mike",
        "Sam"
    ],
    "ListOfTeacher" : [
        "Robert",
        "David"
    ]
}

3. $concatArrays로 배열 연결하기

이제 aggregate() 메서드와 함께 $project 단계를 사용하여 ListOfStudent와 ListOfTeacher 두 배열을 하나의 ListOfPeople 필드로 합쳐 보겠습니다.

> db.demo14.aggregate([
... { "$project": {
...     "ListOfPeople": { "$concatArrays": [ "$ListOfStudent", "$ListOfTeacher" ] }
... }}
... ]);

실행 결과는 다음과 같습니다. 두 배열의 요소들이 앞선 순서대로 하나의 배열에 잘 병합된 것을 확인할 수 있습니다.

{ "_id" : ObjectId("5e0f754bd7df943a7cec4faa"), "ListOfPeople" : [ "Carol", "Mike", "Sam", "Robert", "David" ] }

참고 사항

$concatArrays는 인자로 전달된 배열들을 순서대로 연결하며, 원본 문서는 변경하지 않습니다. 또한 세 개 이상의 배열도 동시에 연결할 수 있어, 여러 개의 리스트 필드를 통합해야 하는 상황에서 매우 유용하게 활용됩니다.