MongoDB에서 배열 필드를 해제(unwind)하려면 $unwind 연산자를 사용합니다. $unwind는 입력 문서의 배열 필드를 분해하여 각 요소마다 하나의 문서를 출력해 줍니다. 이 글에서는 두 개의 배열을 동시에 해제하고, 인덱스를 기준으로 요소들을 짝지어 조회하는 방법을 살펴보겠습니다.1. 샘플 컬렉션 생성먼저 데모용 컬렉션을 만들고 문서를 삽입합니다.> db.demo515.insertOne( ... { ... details1: [ ... 4700100004 ... ], ... details
MongoDB에서 특정 검색 조건에 일치하는 문서 중 가장 마지막에 삽입된 문서만 업데이트하고 싶다면 findAndModify() 메서드를 활용하면 됩니다. 이 메서드는 정렬 옵션과 함께 사용해 조건에 맞는 여러 문서 중 하나만 선택적으로 수정할 수 있다는 장점이 있습니다.1. 컬렉션 생성 및 문서 삽입먼저 예제로 사용할 컬렉션을 만들고 문서를 삽입해 보겠습니다.> db.demo516.insertOne({Name:John,Age:22,Score:56}); { acknowledged : true, insertedId
MongoDB에서 필드 이름 변경하기MongoDB에서 필드 이름을 변경하려면 $project 연산자를 사용하면 됩니다. $project는 애그리게이션 파이프라인의 단계 중 하나로, 기존 필드의 값을 새로운 필드 이름으로 매핑하여 결과를 출력할 수 있습니다.먼저 문서가 포함된 컬렉션을 생성해 보겠습니다.1단계: 컬렉션 생성 및 문서 삽입insertOne() 메서드를 사용하여 demo517 컬렉션에 문서를 차례대로 삽입합니다.> db.demo517.insertOne({"Name":"Chris Brown&
MongoDB에서 _id로 문서 삭제하기MongoDB에서 특정 _id 값을 기준으로 문서를 삭제하려면 remove() 메서드를 사용할 수 있습니다. 기본 문법은 다음과 같습니다.db.yourCollectionName.remove({_id: yourObjectId});1. 테스트용 컬렉션 생성위 문법이 실제로 어떻게 동작하는지 이해하기 위해, 먼저 문서가 포함된 컬렉션을 생성해 보겠습니다.> db.demo518.insertOne({ClientName:Chris}); { acknowledged : true, insert
MongoDB에서 정규 표현식(Regular Expression)을 활용해 텍스트를 검색하려면 $regex 연산자를 사용하면 됩니다. 이 글에서는 실제 예제를 통해 컬렉션 생성부터 패턴 매칭 검색까지 단계별로 살펴보겠습니다.1. 예제 컬렉션 생성하기먼저 문서를 포함하는 컬렉션을 생성합니다. 아래 예제에서는 쉼표로 구분된 숫자 문자열을 값으로 가지는 문서들을 삽입합니다.> db.demo519.insertOne({Value:50,60,70});{ acknowledged : true, insertedId : Objec
MongoDB의 $in 연산자는 필드 값이 지정된 배열 안의 값 중 하나라도 일치할 때 해당 문서를 반환하는 비교 연산자입니다. 일반 필드뿐만 아니라 배열(Array) 타입의 필드에도 그대로 적용할 수 있어, 배열 요소 중 하나라도 조건과 일치하면 해당 문서가 검색됩니다. 1. 컬렉션 생성 및 문서 삽입 먼저 insertOne() 메서드를 사용해 demo520 컬렉션에 이름 목록(ListOfName)을 가진 문서들을 삽입해 보겠습니다. > db.demo520.insertOne({ListOfName:[John,Bob]}); {
MongoDB에서 날짜 기준으로 최신 데이터 조회하기데이터 레코드 중 가장 최신 데이터를 가져오려면 sort() 메서드에 정렬 값 -1을 사용하면 됩니다. 여러 개가 아닌 단 하나의 문서(document)만 필요한 경우에는 limit(1)을 함께 사용해 결과를 제한할 수 있습니다.이번 글에서는 구매 날짜(PurchaseDate)가 저장된 예제 컬렉션을 만들고, 이를 기반으로 가장 최근 데이터를 조회하는 과정을 단계별로 살펴보겠습니다.1. 예제 컬렉션 생성먼저 demo521이라는 컬렉션에 날짜 정보를 포함한 문서들을 삽입합니다.>
MongoDB에서 중복된 데이터를 그룹화하여 고유한(distinct) 객체 쌍을 추출하려면 애그리게이션 파이프라인의 $group 연산자를 활용하는 것이 가장 효과적입니다. 이 글에서는 실제 예제를 통해 컬렉션 생성부터 고유한 객체 쌍 조회까지 전체 과정을 단계별로 살펴보겠습니다.1. 샘플 컬렉션 생성하기먼저 insertOne() 메서드를 사용하여 데모용 컬렉션에 문서를 삽입합니다. 여기서는 이름(Name)과 점수(Score) 필드를 가진 문서 4개를 생성합니다.> db.demo522.insertOne({Name:John,Sco
MongoDB에서 두 필드를 조합해 검색하기MongoDB에서 FirstName과 LastName처럼 여러 개의 필드를 하나로 합쳐서 특정 값을 찾고 싶다면, 집계 파이프라인(aggregate)에서 $concat 연산자로 필드를 결합한 뒤 $eq 연산자로 일치 여부를 확인하면 됩니다.먼저 예제에 사용할 컬렉션을 만들고 문서를 삽입해 보겠습니다.> db.demo502.insertOne({FirstName:John,LastName:Smith});{ acknowledged : true, insertedId : ObjectI
MongoDB에서 배열의 일부만 조회하고 싶을 때는 $slice 연산자를 사용하면 됩니다. $slice 연산자는 find() 쿼리의 프로젝션 단계에서 배열 필드에 포함될 요소의 개수나 범위를 지정할 수 있게 해줍니다.예제 컬렉션 생성먼저 문서가 담긴 컬렉션을 생성해 보겠습니다.> db.demo503.insertOne({_id:1,Name:John,Subject:[MySQL,Java,C]}); { acknowledged : true, insertedId : 1 } > db.demo503.insertOne({_id:2,Nam
MongoDB에서 이름으로 사용자 찾기MongoDB에서 이름을 기준으로 사용자 문서를 조회하려면 find() 메서드를 사용하면 됩니다. 먼저 예제 컬렉션을 만들고 문서를 삽입해 보겠습니다.1. 컬렉션 생성 및 문서 삽입insertOne() 메서드를 사용해 demo504 컬렉션에 사용자 이름 데이터를 차례로 추가합니다.> db.demo504.insertOne({Name:Chris});{ acknowledged : true, insertedId : ObjectId(5e8
MongoDB에서 중첩 배열을 정렬하는 방법MongoDB에서 문서 내부에 포함된 중첩 배열(nested array)을 특정 필드 기준으로 정렬하려면 애그리게이션 프레임워크의 $unwind, $sort, $group 연산자를 함께 사용해야 합니다. 이 글에서는 실제 예제를 통해 그 과정을 단계별로 살펴보겠습니다.1단계: 샘플 컬렉션 생성먼저 중첩 배열을 가진 문서를 포함하는 컬렉션을 생성합니다.> db.demo505.insertOne(... {... details: [...
MongoDB에서 배열 안에 포함된 객체의 특정 필드 값을 증가시키려면 $inc 연산자를 사용하면 됩니다. 이 글에서는 실제 예제를 통해 배열 요소의 값을 증가시키는 과정을 단계별로 살펴보겠습니다.1. 테스트용 컬렉션 생성먼저 문서(document)를 포함하는 컬렉션을 생성합니다. 아래 예제에서는 details라는 배열 필드 안에 여러 개의 객체(id와 Quantity)를 담은 문서를 삽입합니다.> db.demo506.insertOne({details:[{id:1,Quantity:4},{id:2,Quantity:3},{id:3
MongoDB에서 배열 내 객체의 일부 필드를 필터링하고 원하는 값만 가져오려면 프로젝션(projection)과 함께 $filter 연산자와 $match 단계를 활용하면 됩니다. 이 글에서는 실제 예제를 통해 그 과정을 단계별로 살펴보겠습니다.1. 샘플 컬렉션 생성하기먼저 문서가 포함된 컬렉션을 생성합니다.> db.demo507.insertOne( ... { ... Information: ... [ ... {Name:John,SubjectName:MySQL}, ... {Name:Bob,Subje
MongoDB 인덱스 사용 통계 조회하기네, MongoDB의 $indexStats 집계 연산자를 사용하면 쿼리에서 각 인덱스가 사용된 횟수를 손쉽게 추적할 수 있습니다. 이 기능은 데이터베이스 성능 튜닝 시 어떤 인덱스가 실제로 활용되고 있는지, 혹은 불필요한 인덱스가 있는지 파악하는 데 매우 유용합니다.먼저 MongoDB에서 인덱스를 생성하는 쿼리는 다음과 같습니다.> db.demo508.createIndex({FirstName:1});{ createdCollectionAutomatically
MongoDB $addToSet 개요배열 안에 또 다른 배열이 있는 문서(중첩 배열)에 값을 추가하려면 update() 메서드와 $addToSet 연산자를 함께 사용하면 됩니다.$addToSet 연산자는 지정한 값이 배열에 아직 존재하지 않을 때만 값을 추가합니다. 만약 값이 이미 배열에 있다면 $addToSet은 아무 작업도 수행하지 않으므로, 중복 없이 고유한 값만 유지해야 하는 경우에 매우 유용합니다.테스트용 컬렉션 생성먼저 insertOne() 메서드를 사용하여 문서가 포함된 컬렉션을 생성해 보겠습니다.> db.demo
MongoDB 집계에서 최대값과 일치하는 배열 요소를 추출하고 그룹화하는 방법 MongoDB에서 배열에 담긴 여러 요소 중 최대값을 가진 항목을 찾아낸 뒤, 이를 기준으로 그룹화해야 하는 경우가 종종 있습니다. 이럴 때는 $group 연산자와 $max 연산자를 함께 활용하면 손쉽게 해결할 수 있습니다. 이번 글에서는 샘플 데이터를 직접 만들어 보고, 집계 파이프라인($project, $filter, $map, $arrayElemAt, $group)을 조합해 원하는 결과를 얻는 전 과정을 단계별로 살펴보겠습니다. 1단계: 컬렉션 생성
MongoDB에서 특정 값들을 포함하는 배열 필드를 가진 문서를 찾으려면 $in 연산자를 사용하면 됩니다. $in은 지정한 배열 안의 값 중 하나라도 필드와 일치하면 해당 문서를 반환합니다.1. 샘플 컬렉션 생성하기먼저 demo511이라는 컬렉션을 만들고 문서를 삽입해 보겠습니다.> db.demo511.insertOne({ListOfProject:[Library Management System,Hospital Management System]});{ acknowledged : true, insertedId : Obj
배열 기반 필드에 포함된 고유 항목의 개수를 계산하려면 aggregate() 메서드와 함께 $unwind, $group 연산자를 사용하면 됩니다. 아래 예제를 통해 전체 과정을 단계별로 살펴보겠습니다.1. 샘플 데이터 생성먼저 insertOne() 메서드를 사용해 데모용 컬렉션에 문서를 삽입합니다. db.demo493.insertOne({SubjectName:[MySQL,MongoDB,C]});{ acknowledged : true, insertedId : ObjectId(5e849fb2b0f3fa88e22790c6) }
MongoDB에서 배열 안에 있는 특정 요소를 업데이트하려면 $set 연산자와 위치 연산자($)를 함께 사용하면 됩니다. 이 글에서는 실제 예제를 통해 단계별로 자세히 살펴보겠습니다.1. 컬렉션 생성 및 문서 삽입먼저 insertOne() 메서드를 사용하여 문서가 포함된 컬렉션을 생성합니다. CollegeDetails라는 배열 필드에는 대학 이름(CollegeName)과 등록금(Fees) 정보를 담은 두 개의 객체가 들어 있습니다.> db.demo494.insertOne(... {... CollegeDe