MongoDB에서 배열(array) 내부에 특정 조건과 일치하는 객체가 몇 개 포함되어 있는지를 기준으로 문서를 조회해야 하는 경우가 있습니다. 이 글에서는 $where 연산자와 JavaScript 함수를 활용해 이러한 작업을 수행하는 방법을 예제와 함께 자세히 살펴보겠습니다. 1. 샘플 컬렉션 생성 먼저 insertOne() 메서드를 사용하여 문서가 담긴 컬렉션을 생성합니다. > db.demo694.insertOne( ... { ... details : ... [ ... { ...
MongoDB $all 연산자란?MongoDB에서 배열 필드의 값이 지정한 모든 요소를 포함하는 문서만 조회하려면 $all 연산자를 사용하면 됩니다. $all 연산자는 필드의 값이 배열이면서 해당 배열에 명시한 요소들이 전부 들어 있는 문서만 선택합니다. 하나라도 빠진 문서는 결과에서 제외되므로, 정확한 조건 매칭이 필요할 때 유용합니다.실제 동작을 이해하기 위해 예제 컬렉션을 만들어 단계별로 살펴보겠습니다.1. 샘플 컬렉션 생성 및 문서 삽입먼저 demo695라는 컬렉션을 만들고 배열 값을 가진 문서 두 개를 삽입합니다.>
MongoDB에서 정규 표현식으로 문자열 검색하기MongoDB에서 저장된 문자열 데이터를 대소문자 구분 없이 검색하려면 find() 메서드와 함께 정규 표현식의 //i 옵션을 사용하면 됩니다. 이 글에서는 실제 예제를 통해 정규 표현식을 활용해 문서를 검색하는 방법을 단계별로 살펴보겠습니다.1. 컬렉션 생성 및 문서 삽입먼저 demo696이라는 컬렉션을 생성하고 여러 개의 문서를 삽입해 보겠습니다.> db.demo696.insertOne({Message:"/Good/"});{ "
MongoDB에서 컬렉션에 저장된 레코드(문서)의 총 개수를 확인하려면 count() 메서드를 사용하면 됩니다. 이 글에서는 실제 예제를 통해 문서를 삽입하고, 조회한 뒤, 전체 레코드 수를 구하는 과정을 단계별로 살펴보겠습니다.1. 샘플 컬렉션 생성 및 문서 삽입먼저 insertOne() 메서드를 사용해 demo697이라는 컬렉션에 세 개의 문서를 삽입합니다.> db.demo697.insertOne({Name:Chris,Age:21}); { acknowledged : true, insertedId : Objec
MongoDB에서 특정 문서의 하나의 필드 값만 증가시키고 싶다면 $inc 연산자를 update() 메서드와 함께 사용하면 됩니다. $inc는 지정한 숫자만큼 필드 값을 원자적으로(atomic) 증가 또는 감소시켜 주기 때문에 조회수 카운트, 점수 누적 등에 매우 유용합니다.먼저 예제로 사용할 컬렉션을 만들고 문서를 삽입해 보겠습니다.> db.demo698.insertOne({Score:78}); { acknowledged : true, insertedId : ObjectId(5ea6d8a4551299a9f98c
MongoDB에서 저장된 문서의 특정 필드 값만 추출하여 확인하고 싶을 때가 있습니다. 이 글에서는 forEach() 메서드와 print() 함수를 함께 사용하여 MongoDB 문서에서 이메일 ID(UserEmailId) 값을 가져와 출력하는 방법을 단계별로 알아봅니다.1. 샘플 컬렉션 생성하기먼저 insertOne() 메서드를 사용하여 문서가 포함된 컬렉션을 생성합니다.> db.demo690.insertOne({"UserName":"John","UserEmailId":&q
MongoDB에서 조건에 일치하는 여러 문서를 한 번에 원자적으로 업데이트하려면 update() 메서드와 $set 연산자를 함께 사용하면 됩니다. 이때 네 번째 인자인 multi 옵션을 true로 설정해야 단일 문서가 아닌 일치하는 모든 문서가 수정됩니다.1. 샘플 컬렉션 생성하기먼저 데모용 컬렉션을 만들고 문서를 삽입합니다.> db.demo699.insertOne({Name:Chris Brown}); { acknowledged : true, insertedId : ObjectId(5ea6e370551299a9f98
MongoDB에서 대소문자 구분 없이 특정 이름의 문서 조회하기MongoDB에서 대소문자와 관계없이 특정 이름을 가진 문서를 검색하려면 $regex 연산자를 사용하면 됩니다. 이 글에서는 이름이 "David"인 문서를 대소문자 구분 없이 찾는 방법을 실제 예제와 함께 단계별로 살펴보겠습니다.1. 샘플 데이터 준비하기먼저 demo700이라는 컬렉션을 생성하고, 다양한 대소문자 조합의 이름 값을 가진 문서들을 삽입합니다.> db.demo700.insertOne( { details: [ { Name:"da
MongoDB에서 한 컬렉션의 하위 문서(subdocument) 배열에 포함된 _id 값을 기준으로 다른 컬렉션의 문서를 조회하는 방법을 알아보겠습니다. 이 작업에는 $in 연산자와 distinct() 메서드를 함께 활용합니다.1단계: 첫 번째 컬렉션 생성먼저 하위 문서 배열을 포함하는 컬렉션을 생성합니다.> db.demo568.insertOne({ _id: 101, details: [ { id : 101 }, { id:103 } ] }); { acknowledged : true, insertedId : 101 }2단계: 첫
MongoDB에서 특정 조건에 맞는 문서의 개수를 세려면 $count를 사용할 수 있습니다. 만약 13으로 시작하는 값들을 찾고 싶다면 정규 표현식인 $regex를 활용하면 됩니다.컬렉션 생성 및 문서 삽입먼저 문서가 포함된 컬렉션을 생성해 보겠습니다.> db.demo570.insertOne({Information:{Value:13675}});{ acknowledged : true, insertedId : ObjectId(5e90959b39cfeaaf0b97b583) } > db.demo570.insertOne({
자바스크립트에서 undefined 값에 숫자를 더하면 어떤 일이 일어날까요? 정답은 NaN입니다. NaN은 Not a Number의 약자로, 말 그대로 숫자가 아님을 의미하는 특수한 값입니다. 유효하지 않은 산술 연산을 수행했을 때 자바스크립트가 반환하는 결과이며, 숫자 타입에 속하지만 실제 숫자로는 표현할 수 없는 상태를 나타냅니다.사례 1: undefined를 직접 더하는 경우숫자 리터럴에 undefined를 직접 더하면 즉시 NaN이 반환됩니다.var anyVar = 10 + undefined;print(anyVar); //
MongoDB에서 자연 순서(natural order)로 정렬하기MongoDB에서 문서를 자연 순서대로 정렬하려면 $natural 연산자를 사용하면 됩니다. $natural은 컬렉션에 문서가 저장된 물리적 순서, 즉 디스크에 기록된 순서를 기준으로 결과를 반환합니다. 일반적으로 이는 ObjectId의 생성 순서와도 일치합니다.먼저 예제에 사용할 컬렉션을 만들고 문서를 삽입해 보겠습니다.> db.demo684.insertOne({Value:10}); { acknowledged : true, insertedId :
MongoDB에서 특정 필드 값과 일치하는 문서를 조회하려면 aggregate() 메서드를 사용하면 됩니다. 이번 글에서는 배열 형태의 하위 문서에서 Age 필드 값이 21인 데이터만 추출하는 방법을 단계별로 살펴보겠습니다.1. 컬렉션 생성 및 문서 삽입먼저 예제에 사용할 컬렉션을 만들고 문서를 삽입합니다. 아래 예시에서는 details라는 배열 안에 여러 사람의 이름(Name)과 나이(Age) 정보가 들어 있습니다.> db.demo685.insertOne( ... { ... details: ...
SQL의 LIKE 연산자와 같은 부분 일치 검색을 MongoDB에서 구현하려면 find() 메서드와 정규 표현식(//)을 함께 사용하면 됩니다. 이번 글에서는 예제를 통해 실제 동작 방식을 단계별로 살펴보겠습니다. 1. 컬렉션 생성 및 문서 삽입 먼저 데모용 컬렉션을 만들고 여러 개의 문서를 삽입합니다. 여기서는 대소문자가 서로 다른 이름들을 의도적으로 함께 저장했습니다. > db.demo686.insertOne({"FirstName":"Robert"}); { &nb
MongoDB에서 JSON 배열의 내부 요소에 접근하기MongoDB에서 JSON 배열 안에 중첩된 내부 요소에 접근하려면 점 표기법(dot notation)을 사용하면 됩니다. 점 표기법은 필드 이름을 마침표(.)로 연결하여 문서 내부의 하위 필드나 배열 요소까지 경로를 지정하는 방식입니다.먼저 예제에 사용할 문서들을 담은 컬렉션을 생성해 보겠습니다.1. 샘플 데이터 생성> db.demo687.insert({CountryName:US,... info:... {... id:101,... details:... [... { 
MongoDB 중첩 문서에서 조건 설정하기특정 값보다 큰 값을 가진 문서를 조회해야 하는 경우가 종종 있습니다. 이럴 때는 점 표기법(dot notation)을 사용해 중첩된 필드 경로에 접근하고, 비교 연산자인 $gt로 조건을 설정하면 됩니다.실제 예제를 통해 단계별로 살펴보겠습니다.1단계: 컬렉션 생성 및 문서 삽입먼저 예제로 사용할 컬렉션을 생성하고 중첩 구조를 가진 문서들을 삽입합니다.> db.demo688.insert(... {... information:{id:1,details:[ {otherD
insert() 메서드로 다중 문서 삽입하기여러 개의 문서를 한 번에 삽입하려면 MongoDB의 insert() 메서드를 사용하면 됩니다. 삽입할 문서들을 배열 형태로 전달하면 MongoDB가 이를 일괄 처리(bulk write)하여 컬렉션에 저장해 줍니다.다음 예제는 demo689라는 컬렉션을 생성하면서 세 명의 고객 정보를 담은 문서를 한 번에 삽입하는 과정입니다.> db.demo689.insert([... {ClientName:"Chris","Clien
MongoDB 컬렉션 이름 변경이란?MongoDB에서 기존 컬렉션의 이름을 변경해야 하는 경우가 종종 있습니다. 예를 들어, 개발 단계에서 임시로 지정한 컬렉션 이름을 운영 환경에 맞게 수정하거나, 네이밍 규칙을 정비할 때 유용합니다. 이때 renameCollection() 메서드를 사용하면 별도의 데이터 복사 없이 컬렉션 이름을 간단히 변경할 수 있습니다.이번 글에서는 실제 예제를 통해 renameCollection() 메서드를 사용하는 방법을 단계별로 살펴보겠습니다.1단계: 샘플 컬렉션 생성먼저 문서를 포함하는 컬렉션을 생성합니
MongoDB에서 배열 필드 안에 동일한 이름이 여러 번 등장할 때, 각 이름별로 몇 번 나타나는지 집계(aggregation)를 통해 손쉽게 확인할 수 있습니다. 이 글에서는 $unwind, $group, $project 연산자를 활용해 중복 이름별 필드 값 개수를 구하는 방법을 예제와 함께 단계별로 살펴보겠습니다. 1. 샘플 컬렉션 생성 먼저 예제에 사용할 컬렉션을 생성합니다. details 배열 안에는 여러 사람의 이름(Name)과 과목(Subject) 정보가 저장되어 있습니다. > db.demo558.insertOne(
MongoDB에서 문서 내부의 배열 데이터를 그룹화하고 각 값이 몇 번 반복되는지 집계하려면 애그리게이션 파이프라인의 $unwind와 $group 연산자를 함께 사용하면 됩니다. 이 글에서는 details 배열에 포함된 Age 값을 기준으로 그룹화하여, 동일한 나이가 몇 번 등장하는지 개수를 구하는 방법을 단계별로 살펴봅니다.1. 샘플 컬렉션 생성먼저 insertOne() 메서드를 사용하여 여러 개의 하위 문서를 담은 배열 필드가 포함된 문서를 삽입합니다.>db.demo559.insertOne({details:[{Name:&q