개요MongoDB에서 조건에 일치하는 여러 문서를 동시에 업데이트하려면 update() 메서드의 세 번째 인자로 multi: true 옵션을 설정해야 합니다. 기본 설정에서는 조건과 일치하는 첫 번째 문서 하나만 수정되기 때문에, 다수의 문서를 변경하고 싶다면 반드시 이 옵션을 활성화해야 합니다.먼저 예제에 사용할 컬렉션을 생성하고 문서를 삽입해 보겠습니다.1. 테스트용 컬렉션 생성> db.demo312.insertOne({"FirstName":"Robert"});{ &
MongoDB에서 $elemMatch 연산자는 배열 내 요소 중 지정된 조건을 모두 만족하는 문서를 조회할 때 사용됩니다. 이 글에서는 실제 예제를 통해 $elemMatch를 활용해 특정 조건에 맞는 문서를 일치시키는 방법을 알아보겠습니다.1. 샘플 컬렉션 생성먼저 문서가 포함된 컬렉션을 생성해 보겠습니다. insertOne() 메서드를 사용하여 세 개의 문서를 순차적으로 삽입합니다.> db.demo313.insertOne({_id:100,details:[{Name:Chris,Age:24}]}); { acknowledged :
MongoDB에서 대소문자 구분 없이 쿼리하는 방법MongoDB에서 대소문자를 구분하지 않고 데이터를 검색하려면 정규식(regex)을 활용하면 됩니다. 정규식에 i 옵션(case-insensitive)을 추가하면 대문자와 소문자를 가리지 않고 원하는 문자열을 조회할 수 있습니다.먼저 예제로 사용할 컬렉션을 만들고 문서를 삽입해 보겠습니다.> db.demo314.insertOne({Name:Chris brown}); { acknowledged : true, insertedId : ObjectId(5e50d742f8
MongoDB에서 조건부 업데이트를 수행하려면 update() 메서드를 사용하고, 변경할 새 값은 $set 연산자로 지정하면 됩니다. 이번 글에서는 실제 예제를 통해 특정 필드가 일치하는 문서만 골라서 값을 수정하는 방법을 단계별로 살펴보겠습니다.1. 샘플 컬렉션 생성먼저 학생 정보를 담은 컬렉션을 만들고 문서를 삽입합니다.> db.demo150.insertOne({StudentId:101,StudentName:Chris,StudentMarks:35}); { acknowledged : true, insertedId
MongoDB에서 선택한 항목의 배열로 프로젝션 결과 얻기MongoDB에서 특정 조건에 일치하는 문서들의 _id 값을 배열 형태로 조회하려면 distinct() 메서드를 활용할 수 있습니다. 이번 글에서는 실제 예제를 통해 단계별로 살펴보겠습니다.1. 문서가 포함된 컬렉션 생성먼저 이름 목록을 담고 있는 문서들로 컬렉션을 생성해 보겠습니다.> db.demo151.insertOne({ListOfNames:[Chris,David,Mike]}); { acknowledged : true, insertedId : Object
MongoDB에서 findAndModify()로 배열 업데이트하기MongoDB에서 문서 내부의 배열 요소를 조건에 맞게 수정하려면 일반적인 update 계열 메서드보다 findAndModify() 메서드를 사용하는 것이 효과적입니다. 이 메서드는 문서를 검색하고 수정하는 작업을 하나의 원자적(atomic) 연산으로 처리할 수 있어, 조회와 업데이트가 동시에 필요한 경우 특히 유용합니다.이번 글에서는 실제 예제를 통해 findAndModify()를 사용해 배열 요소를 업데이트하는 과정을 단계별로 살펴보겠습니다.1단계: 컬렉션 생성 및
MongoDB에서 배열 안에 포함된 중첩 필드(nested field)를 조건으로 검색하려면 $elemMatch 연산자를 사용해야 합니다. 이 연산자는 배열의 각 요소가 주어진 조건을 만족하는지 개별적으로 확인할 수 있어서, 객체 배열 형태로 저장된 데이터를 다룰 때 매우 유용합니다.아래 예제를 통해 배열 내 중첩 필드를 쿼리하는 전체 과정을 단계별로 살펴보겠습니다.1. 샘플 컬렉션 생성하기먼저 클라이언트 정보를 담은 문서 두 개를 삽입해 테스트용 컬렉션을 만들겠습니다. 각 문서는 ClientDetails라는 배열 필드를 가지며,
MongoDB에서 배열 내부 값들의 차이를 기준으로 문서를 정렬하려면 aggregate() 메서드를 활용하면 됩니다. 이 글에서는 배열에 담긴 두 값의 차이를 계산하고, 그 결과를 기준으로 내림차순 정렬하는 과정을 단계별로 살펴보겠습니다. 1. 테스트 컬렉션 생성 먼저 예제로 사용할 컬렉션을 만들고 문서를 삽입합니다. 각 문서는 Scores 배열 안에 Value 필드를 가진 객체 두 개를 포함합니다. > db.demo155.insertOne({Scores:[{Value:45},{Value:50}]}); { acknow
MongoDB에서 특정 필드, 특히 배열 필드에 중복된 값이 저장되는 것을 방지하려면 ensureIndex() 메서드를 사용해 고유(unique) 인덱스를 생성하고, 옵션 객체 안에 unique: 1을 설정하면 됩니다. 이렇게 하면 동일한 값이 다른 문서의 배열에 이미 존재할 경우 삽입이 거부됩니다.참고: 최신 MongoDB 버전에서는 ensureIndex()가 더 이상 권장되지 않으며(deprecated), 대신 createIndex()를 사용하는 것이 좋습니다. 두 메서드의 동작 방식은 동일합니다.1. 컬렉션 생성 및 문서 삽입
MongoDB에서 배열 안에 포함된 객체에 접근하려면 점 표기법(dot notation)을 사용하면 됩니다. 이번 글에서는 실제 예제를 통해 배열 내 객체를 조회하는 방법을 단계별로 살펴보겠습니다.1. 샘플 컬렉션 생성하기먼저 insertOne() 메서드를 사용하여 문서가 포함된 컬렉션을 생성합니다. 아래 예제에서는 demo299라는 컬렉션에 두 개의 문서를 삽입합니다. 각 문서는 details라는 배열 필드를 가지고 있으며, 배열 안에는 SubjectName 필드를 포함한 객체들이 들어 있습니다.> db.demo299.ins
MongoDB에서 배열 요소의 순서를 변경하는 방법MongoDB에서 배열(array) 내부 요소들의 순서를 바꾸고 싶다면 스왑(swap, 값 교환) 개념을 활용하면 됩니다. 스왑은 두 값을 서로 맞바꾸는 기본적인 프로그래밍 기법으로, 임시 변수(temporary variable)를 사용해 첫 번째 요소와 두 번째 요소의 자리를 교환할 수 있습니다.아래에서 실제 예제를 통해 단계별로 살펴보겠습니다.1단계: 컬렉션 생성 및 문서 삽입먼저 insertOne() 메서드를 사용해 배열 필드를 가진 문서를 컬렉션에 삽입합니다.> db.d
MongoDB에서 점 표기법으로 필드 선택하기MongoDB의 find() 메서드에서는 점 표기법(dot notation)을 사용하여 문서 내부의 특정 필드나 배열 요소의 하위 필드를 손쉽게 선택하거나 제외할 수 있습니다. 이번 글에서는 실제 예제를 통해 그 사용 방법을 단계별로 살펴보겠습니다.1단계: 샘플 컬렉션 생성먼저 문서가 포함된 컬렉션을 생성합니다.> db.demo302.insertOne({Id:101,details:[{Name:Chris,Age:21,Subject:MySQL}]}); { acknowledged
MongoDB distinct() 메서드로 고유한 값 추출하기컬렉션에 저장된 문서들에서 특정 필드의 중복을 제거한 고유한(distinct) 값만 추출하고 싶다면 MongoDB의 distinct() 메서드를 사용하면 됩니다. 이번 글에서는 예제 컬렉션을 직접 만들어 보고, distinct()를 활용해 고유한 FirstName 값을 조회하는 전체 과정을 단계별로 살펴보겠습니다.1단계: 샘플 컬렉션 생성먼저 insertOne() 메서드로 문서를 하나씩 삽입하여 데모용 컬렉션을 생성합니다.> db.demo303.insertOne({F
MongoDB에서 여러 조건 중 하나라도 일치하는 문서를 조회하려면 $or 연산자를 사용하면 됩니다. 또한 쿼리 결과를 보기 좋게 정렬된 형태로 출력하고 싶다면 pretty() 메서드를 함께 활용할 수 있습니다.이번 글에서는 예제 컬렉션을 만들고, $or 연산자로 값을 조회한 뒤 결과를 가독성 있게 포맷팅하는 방법을 단계별로 살펴보겠습니다.1. 샘플 데이터가 담긴 컬렉션 만들기먼저 insertOne() 메서드를 사용해 문서들이 들어 있는 컬렉션을 생성합니다.> db.demo304.insertOne({StudentName:Chr
MongoDB에서 키로 컬렉션의 자식 필드 조회하기 MongoDB에서 특정 키를 기준으로 컬렉션 내 문서의 자식(하위) 필드를 가져오려면 find() 메서드를 사용하면 됩니다. 먼저 예제용 컬렉션을 생성하고 문서를 삽입해 보겠습니다. > db.demo305.insertOne( ... { ... _id: 101, ... FirstName : Chris, ... details : { ... 0:102, ... 1:10001 ... } ... } ...); {
MongoDB에서 문서를 조회하려면 find() 메서드를 사용합니다. 여기에 pretty() 메서드를 함께 사용하면 조회 결과를 보기 좋은 형식으로 정렬하여 출력할 수 있습니다.컬렉션 생성 및 문서 삽입먼저 insertOne() 메서드를 사용해 문서가 포함된 컬렉션을 만들어 보겠습니다.> db.demo306.insertOne({Name:Robert,Age:21}); { acknowledged : true, insertedId : ObjectId(5e4ea7c6f8647eb59e562038) } > db.demo
MongoDB에서 문서의 일부 필드(하위 집합)만 조회하고 싶다면 find() 메서드에 도트 표기법(dot notation)을 활용하면 됩니다. 이 글에서는 예제 컬렉션을 만들고, 특정 조건에 맞는 문서에서 원하는 필드만 추출하는 방법을 단계별로 살펴보겠습니다. 1. 예제 컬렉션 생성하기 먼저 insertOne() 메서드를 사용해 클라이언트 정보를 담은 문서 두 개를 컬렉션에 삽입합니다. > db.demo307.insertOne({ ... CleintId: 101, ... ClientDetails: {ClientFir
MongoDB 컬렉션의 전체 데이터 삭제하기MongoDB에서 컬렉션에 저장된 모든 문서를 한 번에 제거하려면 remove() 메서드에 빈 조건 객체 {}를 인자로 전달하면 됩니다. 이번 글에서는 실제 예제를 통해 컬렉션을 생성하고, 전체 데이터를 삭제하는 과정을 단계별로 살펴보겠습니다.1단계: 샘플 컬렉션 및 문서 생성먼저 insertOne() 메서드를 사용하여 demo309 컬렉션에 문서 두 개를 삽입합니다.> db.demo309.insertOne({ details:[ { Name:Chris }, { Name:David },
MongoDB에서 내장(embedded) 문서 배열에 새 요소를 추가하려면 $push 연산자를 사용할 수 있습니다. 이 글에서는 실제 예제를 통해 내장 배열에 데이터를 삽입하는 과정을 단계별로 살펴보겠습니다.1. 샘플 컬렉션 생성하기먼저 문서가 포함된 컬렉션을 생성해 보겠습니다. 아래 예제에서는 details라는 내장 배열 필드를 가진 문서를 하나 삽입합니다.> db.demo288.insertOne({Name:Chris,details:[{CountryName:US,Marks:78},{CountryName:UK,Marks:68}
MongoDB에서 여러 배열을 하나의 배열로 만들기여러 배열에 담긴 요소들을 개별 값으로 분리하려면 MongoDB의 $unwind 연산자를 aggregate(집계)와 함께 사용하면 됩니다. $unwind는 배열 필드를 입력받아 각 요소마다 하나의 문서를 출력해 주는 아주 유용한 기능입니다.먼저 문서가 포함된 컬렉션을 생성해 보겠습니다.1단계: 컬렉션 생성 및 문서 삽입> db.demo289.insertOne({Section:[A,B,E],Name:Chris});{ acknowledged : true,&nb