MongoDB에서 여러 문서에 저장된 배열을 하나로 병합하려면 aggregate() 메서드와 $push 연산자를 함께 사용하면 됩니다. 이 글에서는 실제 예제를 통해 배열을 병합하는 과정을 단계별로 살펴보겠습니다.
1. 컬렉션 생성 및 문서 삽입
먼저 insertOne() 메서드를 사용하여 컬렉션을 생성하고 문서를 삽입해 보겠습니다.
> db.demo64.insertOne({"Subjects":["MySQL","MongoDB","Java"]});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e28762bcfb11e5c34d89936")
}
> db.demo64.insertOne({"Subjects":["Oracle","Spring","Python"]});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e28763fcfb11e5c34d89937")
}
위 명령은 각각 과목 목록을 담은 두 개의 문서를 demo64 컬렉션에 추가합니다.
2. 삽입된 문서 확인하기
find() 메서드를 사용하여 컬렉션의 모든 문서를 조회할 수 있습니다.
> db.demo64.find();
위 쿼리는 다음과 같은 결과를 출력합니다.
{ "_id" : ObjectId("5e28762bcfb11e5c34d89936"), "Subjects" : [ "MySQL", "MongoDB", "Java" ] }
{ "_id" : ObjectId("5e28763fcfb11e5c34d89937"), "Subjects" : [ "Oracle", "Spring", "Python" ] }
3. aggregate()와 $push로 배열 병합하기
이제 MongoDB에서 두 문서의 배열을 하나로 병합하는 핵심 쿼리를 살펴보겠습니다. $group 스테이지에서 _id를 null