MongoDB에서 필드와 하위 필드(subfield)를 기준으로 항목을 필터링하려면 점 표기법(dot notation)을 사용하면 됩니다. 이 방식은 중첩된 문서 구조 내부의 특정 값에 쉽게 접근할 수 있게 해줍니다.1. 컬렉션 생성 및 문서 삽입먼저 예제에 사용할 컬렉션을 만들고 문서를 삽입해 보겠습니다.> db.demo638.insert({Name:Chris}); WriteResult({ nInserted : 1 }) > db.demo638.insert({Name:David,details:{Subject:MongoDB
MongoDB의 집계 프레임워크(Aggregation Framework)에서 문서를 그룹화하려면 $group 단계를 사용하면 됩니다. 이 글에서는 실제 예제를 통해 $group의 기본 개념부터 실행 결과까지 단계별로 살펴보겠습니다.1. 샘플 데이터 생성하기먼저 insertOne() 메서드를 사용해 문서를 삽입하고 컬렉션을 생성합니다.> db.demo639.insertOne( ... { ... _id : 1, ... CountryName : US, ... Info1 : { ...
MongoDB 배열 투영으로 첫 번째 배열 요소 가져오기MongoDB에서 배열 필드의 첫 번째 요소만 조회하고 싶다면, $slice 프로젝션 연산자를 쿼리 조건 연산자인 $gte와 함께 사용하면 됩니다. 이 글에서는 실제 예제를 통해 단계별로 살펴보겠습니다.1단계: 컬렉션 생성 및 문서 삽입먼저 insertOne() 메서드를 사용해 컬렉션을 생성하고 문서를 삽입합니다.> db.demo640.insertOne({Name:John,Scores:[80,90,75]}); { acknowledged : true, inse
MongoDB에서 문서 내부에 중첩된 배열(임베디드 배열)에서 원하는 요소만 골라내고 싶다면, 애그리게이션 파이프라인의 $unwind와 $match를 점 표기법(dot notation)과 함께 사용하면 됩니다.1. 샘플 컬렉션 생성먼저 실습에 사용할 컬렉션을 만들고 문서를 삽입해 보겠습니다.> db.demo641.insert( ... { ... ProductId:101, ... ProductInformation: ... [ ... { ...
MongoDB에서 데이터베이스에 저장된 모든 컬렉션의 이름을 한눈에 확인하고 싶다면 getCollectionNames() 메서드를 사용하면 됩니다. 이 메서드는 현재 접속 중인 데이터베이스에 존재하는 컬렉션 이름들을 배열(Array) 형태로 반환해 줍니다.기본 문법사용 방법은 매우 간단합니다. 별도의 매개변수 없이 아래와 같이 호출하기만 하면 됩니다.db.getCollectionNames();실행 예제test 데이터베이스에 포함된 모든 컬렉션 이름을 조회해 보겠습니다.> use test> db.getCollectionNa
MongoDB에서 필드 값이 배열로 저장된 문서 중, 특정 이름들이 모두 포함된 문서만 조회하고 싶다면 $all 연산자를 사용하면 됩니다. $all은 지정한 모든 요소가 배열 안에 존재하는 문서만 선택하는 연산자입니다.1. 테스트 컬렉션 생성먼저 예제로 사용할 컬렉션을 만들고 문서를 삽입해 보겠습니다.> db.demo642.insertOne( ... { ... _id:1, ... ListOfNames:[Robert,John] ... } ... ); { acknowledged : true,
MongoDB에서 중첩된 내장 문서(nested embedded documents)를 업데이트하려면 update() 메서드와 위치 연산자인 positional($) 연산자를 함께 사용하면 됩니다. 먼저 예제용 컬렉션을 생성하고 문서를 삽입해 보겠습니다.1. 컬렉션 생성 및 문서 삽입> db.demo643.insertOne({ ... details : [ ... { ... CountryName:US, ... StudentDetails:[{Name:Chris},{Subject
MongoDB에서 타임스탬프를 현재 날짜로 업데이트하기MongoDB에서 기존 문서의 날짜 필드를 수정하려면 update() 메서드를 사용하면 됩니다. 필드 값을 현재 날짜로 설정하려면 먼저 JavaScript의 new Date()를 통해 현재 시각을 가져와야 합니다.var todayDate = new Date();1단계: 컬렉션 생성 및 문서 삽입먼저 샘플 문서가 포함된 컬렉션을 만들어 보겠습니다.> db.demo644.insertOne({"ShippingDate":new ISODate("2018-0
MongoDB 컬렉션에서 remove() 메서드를 사용하면 $eq 연산자로 지정한 값과 일치하는 문서를 간편하게 제거할 수 있습니다. $eq는 필드의 값이 주어진 값과 정확히 동일한 문서를 찾아내는 비교 연산자입니다.이번 글에서는 실제 예제를 통해 컬렉션 생성부터 문서 제거, 결과 확인까지 단계별로 살펴보겠습니다.1단계: 샘플 컬렉션 생성먼저 예제에 사용할 컬렉션을 만들고 문서를 삽입합니다.> db.demo626.insertOne({id:1,Name:Chris}); { acknowledged : true, inser
MongoDB에서 중복된 ID가 포함된 데이터의 총 점수를 계산하려면 aggregate() 메서드와 함께 $group 연산자를 사용하면 됩니다. 이 글에서는 실제 예제를 통해 여러 필드(id, Name)를 기준으로 그룹화하고 점수(Marks)의 합계를 구하는 방법을 단계별로 살펴보겠습니다.1. 샘플 컬렉션 생성하기먼저 insertOne() 메서드를 사용해 테스트용 문서들을 삽입합니다. 아래 예제에서는 id가 101과 102인 문서들이 각각 두 개씩 존재합니다.> db.demo627.insertOne({id:101,Name:Ch
MongoDB에서 배열 내 값(객체가 아닌) 조회하기MongoDB에서 배열(목록)에 저장된 값 중 조건과 일치하는 요소만 조회하고 싶다면 위치 연산자($)를 활용하면 됩니다. 이번 글에서는 실제 예제를 통해 배열 안의 단순 값(문자열 등 객체가 아닌 데이터)을 조회하는 방법을 살펴보겠습니다.1. 테스트용 컬렉션 생성하기먼저 insertOne() 메서드를 사용하여 문서를 담은 컬렉션을 생성합니다. 각 문서는 id 필드와 이름 문자열로 구성된 Name 배열을 가지고 있습니다.> db.demo628.insertOne({id:1,Na
MongoDB에서 간단한 쿼리로 문서 필터링하기MongoDB에서 특정 조건에 맞는 문서만 골라내고 싶다면 $match 연산자를 사용하면 됩니다. $match는 애그리게이션(집계) 파이프라인에서 지정한 조건과 일치하는 문서만 다음 단계로 전달하는 역할을 합니다.이번 글에서는 실제 예제를 통해 컬렉션 생성부터 문서 필터링까지 전 과정을 살펴보겠습니다.1. 컬렉션 생성 및 문서 삽입먼저 insertOne() 메서드를 사용해 demo629 컬렉션에 문서를 생성합니다. 이 문서에는 과목 목록(Subject)과 학생별 세부 정보(details
MongoDB에서 문서를 내림차순으로 정렬하려면 find() 메서드와 함께 sort() 메서드를 사용하면 됩니다. sort()에 필드 이름과 함께 -1을 지정하면 해당 필드를 기준으로 내림차순(큰 값부터 작은 값 순) 정렬이 수행됩니다.1. 컬렉션 생성 및 문서 삽입먼저 예제로 사용할 컬렉션을 만들고 문서를 삽입해 보겠습니다.> db.demo630.insertOne({Value:10}); { acknowledged : true, insertedId : ObjectId(5e9b080e6c954c74be91e6ba) }
MongoDB에서 배열로 중첩된 특정 내장 문서(embedded document)를 조회하려면 집계 파이프라인(aggregation pipeline)에서 $unwind 연산자를 두 번 사용하면 됩니다. 이 방법은 다차원 배열 구조를 개별 문서로 분해한 뒤, 원하는 조건에 맞는 데이터만 필터링할 수 있게 해줍니다.1. 샘플 컬렉션 생성먼저 중첩된 배열 구조를 가진 문서를 포함하는 컬렉션을 생성해 보겠습니다.> db.demo631.insert( ... { ... id: 101, ... Info1: [ .
MongoDB에서 $pull로 행렬 형태 문서의 값 제거하기MongoDB에서 행렬(matrix)처럼 중첩된 배열 구조를 가진 문서에서 특정 값을 제거하려면 $pull 연산자를 사용합니다. $pull은 지정된 조건과 일치하는 값을 배열에서 모두 삭제해 주는 업데이트 연산자입니다.1. 샘플 컬렉션 생성 및 문서 삽입먼저 insertOne() 메서드를 사용하여 2차원 배열(arrayMatrix) 필드를 가진 문서를 컬렉션에 삽입해 보겠습니다.> db.demo632.insertOne(... {
MongoDB에서 특정 개수의 값을 건너뛰고 결과를 가져오려면 skip() 메서드와 함께 limit() 메서드를 사용하면 됩니다. 예를 들어 5개의 값을 건너뛰려면 limit(5)를 지정하면 되는데, 실제로는 페이징(paging) 처리 시 자주 활용되는 패턴입니다.테스트 컬렉션 생성하기먼저 예제로 사용할 컬렉션을 만들고 문서를 삽입해 보겠습니다.> db.demo633.insertOne({Value:10}); { acknowledged : true, insertedId : ObjectId(5e9c0be76c954c74
MongoDB에서 forEach() 메서드를 사용해 문서를 순회하면, 특정 조건에 맞는 문서를 찾아 해당 문서만 선택적으로 업데이트할 수 있습니다. 이 글에서는 학생 이름이 David인 문서를 찾아 그 학생의 점수(Marks)를 새로운 값으로 변경하는 방법을 단계별로 살펴보겠습니다. 1. 테스트용 컬렉션 생성 먼저 예제로 사용할 컬렉션(demo634)에 문서를 삽입합니다. > db.demo634.insertOne({Name:Chris,Marks:76}); { acknowledged : true, insertedI
MongoDB에서 특정 필드에 값이 몇 번 등장하는지, 즉 중복 값의 빈도(frequency)를 확인하고 싶다면 aggregate() 메서드와 함께 $group 연산자를 사용하면 됩니다. 이 글에서는 예제 컬렉션을 만들고, 이름(Name)별 등장 횟수를 집계하는 방법을 단계별로 살펴보겠습니다.1. 샘플 데이터 준비먼저 문서를 담은 컬렉션을 생성합니다. 아래 예제에서는 demo635라는 컬렉션에 여러 개의 이름 문서를 삽입합니다.> db.demo635.insertOne({Name:Chris}); { acknowledged
MongoDB 집계와 그룹화 기본 개념MongoDB에서 aggregate() 메서드와 함께 $group 연산자를 사용하면 컬렉션의 문서들을 특정 필드 기준으로 그룹화하고, 각 그룹의 문서 수를 손쉽게 집계할 수 있습니다.이번 글에서는 실제 예제를 통해 컬렉션을 생성하고, 이름(Name) 필드를 기준으로 그룹화하여 각 이름이 몇 번 등장하는지 집계하는 방법을 단계별로 살펴보겠습니다.1단계: 샘플 컬렉션 생성하기먼저 insertOne() 메서드를 사용해 demo616 컬렉션에 문서를 생성합니다.> db.demo616.insertO
MongoDB에서 중첩 객체(내장 문서)의 특정 필드를 기준으로 데이터를 그룹화하려면 점 표기법(dot notation)과 $group 연산자를 함께 사용하면 됩니다. 이 글에서는 실제 예제를 통해 중첩 객체에 대한 그룹 쿼리를 작성하는 방법을 단계별로 살펴보겠습니다.1. 샘플 컬렉션 생성하기먼저 insertOne() 메서드를 사용하여 clientDetails라는 중첩 객체를 포함한 문서들을 컬렉션에 삽입합니다.> db.demo617.insertOne( ... { ... clientDetails: { ..