MongoDB에서 $push로 배열에 값 추가하기MongoDB에서 기존 문서의 배열 필드에 새로운 값을 수동으로 추가하려면 $push 연산자를 사용하면 됩니다. 이 글에서는 실제 예제를 통해 컬렉션 생성부터 값 추가까지 전 과정을 단계별로 살펴보겠습니다.1단계: 샘플 컬렉션 생성먼저 insert() 메서드를 사용하여 문서가 포함된 컬렉션을 생성합니다.> db.demo585.insert({... firstName: John,... lastName:
MongoDB에서 배열 형태로 저장된 데이터 안에서 고유값(distinct)을 선택하고 각 값이 등장한 횟수까지 함께 집계해야 하는 경우가 자주 있습니다. 이 글에서는 애그리게이션(aggregate) 파이프라인을 활용해 이 작업을 수행하는 방법을 단계별로 살펴보겠습니다.1. 샘플 컬렉션 생성하기먼저 문서를 담고 있는 컬렉션을 생성합니다. 아래 예제에서는 demo586이라는 컬렉션에 학생 이름과 점수를 담은 details 배열 필드를 가진 문서 두 개를 삽입합니다.> db.demo586.insertOne( ... {deta
MongoDB에서 하위 문서를 계속 추가하는 방법MongoDB에서 배열 형태의 필드에 하위 문서(subdocument)를 계속해서 추가하려면 $push 연산자를 사용하면 됩니다. 기존 문서를 수정할 때는 update() 메서드를 함께 활용합니다. 아래 예제를 통해 단계별로 살펴보겠습니다.1단계: 컬렉션 생성 및 문서 삽입먼저 insertOne() 메서드를 사용하여 컬렉션을 생성하고 문서를 삽입합니다.> db.demo587.insertOne({id:101,details:[{Name:Chris,Age:21,Marks:57}]});
MongoDB에서 배열에 포함된 중복 값을 제거하고 고유한(distinct) 항목만 추출하려면 distinct() 메서드를 사용하면 됩니다. 이 글에서는 실제 예제를 통해 그 사용법을 단계별로 살펴보겠습니다. 1. 샘플 데이터 생성 먼저 중복된 값이 포함된 배열을 가진 문서를 삽입하여 컬렉션을 생성합니다. > db.demo588.insertOne({CountryName:[US,AUS,UK,US,UK,AUS]}); { acknowledged : true, insertedId : ObjectId(5e92bbd2fd2d9
MongoDB에서 두 필드의 값이 서로 같은지 비교하고 해당 조건을 만족하는 문서를 조회하려면 $where 연산자를 사용할 수 있습니다. 이 글에서는 청구 주소(billingAddress)가 배송 주소(deliveryAddress)와 일치하는 문서를 찾는 방법을 단계별로 살펴보겠습니다. 1. 테스트용 컬렉션 생성 및 데이터 삽입 먼저 예제에 사용할 컬렉션을 만들고 문서를 삽입합니다. > db.demo589.insertOne({deliveryAddress:US,billingAddress:UK}); { acknowledged
MongoDB에서 _id를 제외한 필드 값만 조회하기MongoDB의 find() 메서드는 기본적으로 _id 필드를 포함한 모든 필드를 반환합니다. 하지만 데이터를 가공하거나 클라이언트에 전달할 때는 _id를 제외한 순수한 필드 값만 필요한 경우가 많습니다. 이번 글에서는 forEach() 반복문을 활용해 _id 없이 원하는 필드만 새로운 객체 배열로 만들어 출력하는 방법을 단계별로 살펴보겠습니다.1단계: 샘플 컬렉션 생성먼저 문서를 포함하는 컬렉션을 생성합니다.> db.demo590.insert([... { "
MongoDB에서 중첩(nested) 문서나 배열 내부의 필드 값을 조회하려면 점 표기법(dot notation)을 사용해야 합니다. 이 글에서는 실제 예제를 통해 중첩 문서를 find() 쿼리로 검색하는 방법을 단계별로 살펴보겠습니다.1. 샘플 컬렉션 생성먼저 중첩 구조를 포함한 문서들을 담은 컬렉션을 생성합니다. 아래 예제에서는 details라는 배열 필드 안에 이메일과 국가 정보가 중첩되어 있습니다.> db.demo591.insert([ ... { Name: John, Age: 23 }, ... { Name
MongoDB에서 배열 필드 내부의 요소 조건을 기준으로 문서를 조회하려면 $elemMatch 연산자를 사용해야 합니다. $elemMatch는 하나의 배열 요소 안에서 여러 조건이 동시에 만족되는지를 검사할 때 특히 유용합니다.1. 샘플 컬렉션 생성먼저 예제에 사용할 컬렉션을 만들고 문서를 삽입하겠습니다. 아래 예시는 details라는 배열 필드를 가진 두 개의 문서를 생성하는 코드입니다.> db.demo592.insertOne( ... { ... id:101, ... details : [ ..
MongoDB에서 배열 형태로 저장된 내장(embedded) 문서를 조건에 따라 조회하고, 해당 조건이 충족될 때 새로운 문서를 배열에 추가하려면 update 연산과 함께 $push 연산자를 사용하면 됩니다.특히 $nin 연산자를 조건으로 활용하면, 특정 값이 아직 배열에 존재하지 않는 경우에만 새 문서를 추가하는 로직을 손쉽게 구현할 수 있습니다. 아래 예제를 통해 단계별로 살펴보겠습니다.1. 컬렉션 생성 및 문서 삽입먼저 데모용 컬렉션을 만들고 내장 문서 배열을 포함한 데이터를 삽입합니다.> db.demo573.insert
MongoDB에서 문서의 모든 필드 값이 조건과 일치하는지 확인하려면 집계(Aggregation) 파이프라인에서 $match 연산자와 $and 연산자를 함께 사용하면 됩니다. 이 글에서는 중첩된 구조를 가진 컬렉션을 대상으로 여러 조건을 동시에 만족하는 문서를 조회하는 방법을 단계별로 살펴보겠습니다.1. 샘플 컬렉션 생성하기먼저 insertOne() 메서드를 사용하여 문서가 포함된 컬렉션을 생성합니다. 아래 예제는 중첩 객체 구조를 가진 문서를 삽입하는 코드입니다.> db.demo574.insertOne( ... { .
MongoDB에서 id 필드를 숨기고 원하는 필드만 조회하는 방법MongoDB에서 데이터를 조회할 때 프로젝션(projection)을 활용하면 특정 필드만 선택적으로 표시하거나 숨길 수 있습니다. 이 글에서는 문서에 포함된 id 필드의 값을 숨기고 나머지 정보만 출력하는 방법을 예제와 함께 단계별로 살펴보겠습니다.1. 컬렉션 생성 및 문서 삽입먼저 데모용 컬렉션을 만들고 insertOne() 메서드로 문서를 삽입해 보겠습니다.> db.demo575.insertOne({id:101,Information:{Name:"Ch
MongoDB의 애그리게이션 파이프라인에서 $group 연산을 사용할 때, 각 그룹 안에서 특정 기준으로 정렬된 첫 번째 문서만 추출해야 하는 경우가 자주 있습니다. 이 글에서는 $sort, $group, $project 단계를 조합해 이 작업을 수행하는 방법을 예제와 함께 살펴보겠습니다. 샘플 컬렉션 생성하기 먼저 demo576 컬렉션을 만들고 문서를 차례대로 삽입합니다. > db.demo576.insertOne({id:101,Name:Chris,Marks:45}) { acknowledged : true, insertedI
MongoDB 컬렉션을 배열 값 기준으로 정렬하는 방법MongoDB 컬렉션을 배열 내부의 값 기준으로 정렬하려면 aggregate() 메서드에 $sort 연산자를 조합해 사용합니다. 이때 배열의 각 요소를 개별 문서로 펼쳐 주는 $unwind 단계도 함께 활용합니다.먼저 예제에 사용할 컬렉션을 생성하고 문서를 삽입해 보겠습니다.> db.demo577.insertOne(... {... "student&quo
MongoDB $slice 연산자로 배열 요소 하나만 가져오기MongoDB에서 배열에 담긴 데이터 중 일부만 조회하고 싶다면 $slice 연산자를 사용하면 됩니다. 이 글에서는 배열의 첫 번째 요소 하나만 슬라이스해 가져오는 방법을 실제 예제와 함께 단계별로 살펴보겠습니다.1. 컬렉션 생성 및 문서 삽입먼저 insertOne() 메서드를 사용해 컬렉션을 생성하고 문서를 삽입합니다.> db.demo579.insertOne(... {...  
MongoDB에서 고유 속성 합산 후 결과 가격 구하기서로 다른 컬렉션 요소에 있는 고유한 속성의 합계를 계산하려면 $cond 연산자와 $group 단계를 함께 사용하면 됩니다. 이 조합을 활용하면 중복되지 않는 속성을 기준으로 가격을 합산한 최종 결과를 얻을 수 있습니다.1. 샘플 컬렉션 생성먼저 문서가 담긴 컬렉션을 생성해 보겠습니다.> db.demo580.insertOne( ... { ... "Name":"John", ... "Id1":&qu
MongoDB에서 목록을 정렬하려면 sort() 메서드를 사용합니다. 이 글에서는 컬렉션의 문서를 특정 필드 기준으로 정렬한 뒤, 각 문서에 순위를 나타내는 위치(Position) 값을 추가하는 방법을 단계별로 살펴보겠습니다.1. 샘플 컬렉션 생성하기먼저 데모용 컬렉션을 만들고 문서를 삽입합니다.> db.demo581.insertOne({"Name":"Chris","Score":56});{ "acknowledged" : true, &q
개요누산기(Accumulator)는 애그리게이션 파이프라인을 따라 이동하는 도큐먼트들의 상태를 유지하면서 값을 집계하는 연산자입니다. 대표적인 예로 $sum, $max, $first 등이 있습니다.$$ROOT는 시스템 변수로, 애그리게이션 파이프라인 단계에서 현재 처리 중인 루트(root) 도큐먼트, 즉 최상위(top-level) 도큐먼트 전체를 참조합니다. 이를 $first 누산기와 함께 사용하면 각 그룹에서 첫 번째로 등장한 원본 문서를 그대로 가져올 수 있습니다.샘플 컬렉션 생성하기먼저 도큐먼트가 포함된 컬렉션을 생성해 보겠습
MongoDB에서 배열 형태의 하위 문서(서브 도큐먼트) 안에 또 다른 하위 문서가 중첩되어 있을 때, 특정 조건에 맞는 요소만 골라내야 하는 경우가 종종 있습니다. 이럴 때는 aggregate() 메서드와 $unwind 연산자를 함께 사용하면 됩니다. 이번 글에서는 실제 예제를 통해 그 과정을 단계별로 살펴보겠습니다. 1. 샘플 데이터 준비하기 먼저 데모용 컬렉션을 만들고 문서를 삽입합니다. 아래 예제는 details1 배열 안에 details2 배열이 한 번 더 중첩된 구조를 가지고 있습니다. > db.demo583.ins
MongoDB에서 $or 연산자를 사용하면 여러 조건 중 하나라도 만족하는 문서를 손쉽게 조회할 수 있습니다. 이 글에서는 실제 예제를 통해 $or 연산자로 나이(Age), 점수(Marks), 상태(status) 등 다양한 조건을 결합하여 원하는 문서만 가져오는 방법을 단계별로 살펴보겠습니다.1. 샘플 컬렉션 생성하기먼저 insertOne() 메서드를 사용하여 문서가 포함된 컬렉션을 생성하겠습니다.> db.demo711.insertOne({Name:John,Marks:75,Age:21,status:Active});{
MongoDB 컬렉션의 모든 문서에 새 필드 추가하기MongoDB에서 기존 컬렉션의 모든 문서에 새로운 필드를 추가하려면 $addFields 집계 연산자를 사용하면 됩니다. 이 글에서는 예제 컬렉션을 직접 만들어 보고, $addFields를 활용해 모든 문서에 새 필드를 일괄 추가하는 과정을 단계별로 살펴보겠습니다.1단계: 샘플 컬렉션 생성먼저 insertOne() 메서드를 사용해 demo712 컬렉션에 문서를 차례로 삽입합니다.> db.demo712.insertOne({"Name":"John&quo