MongoDB에서는 관계형 데이터베이스의 테이블에 해당하는 개념을 컬렉션(Collection)이라고 부릅니다. 컬렉션을 삭제할 때는 drop() 메서드를 사용합니다.drop() 메서드 기본 문법db.yourCollectionName.drop();삭제하고자 하는 컬렉션 이름 뒤에 drop()을 붙여 실행하면 해당 컬렉션이 데이터베이스에서 완전히 제거됩니다.1단계: 샘플 컬렉션 생성하기먼저 실습을 위해 문서(document)가 포함된 컬렉션을 생성해 보겠습니다.> db.deleteTableDemo.insertOne({Name:Ch
MongoDB에서 중복을 제거한 고유한 값들을 정렬된 순서로 조회하면서 일부 레코드를 건너뛰고 개수를 제한하려면 애그리게이션(집계) 프레임워크를 활용하면 됩니다. $group, $sort, $skip, $limit 연산자를 조합하면 손쉽게 구현할 수 있습니다.먼저 예제에 사용할 컬렉션을 생성하고 문서를 삽입해 보겠습니다.컬렉션 생성 및 문서 삽입> db.orderedDistinctDemo.insertOne({"Name":"John"}); { "acknowledged"
db.collection.find()의 반환 유형MongoDB에서 db.collection.find() 구문은 쿼리 결과 집합(result set)에 대한 커서(cursor)를 반환합니다. 즉, find()는 문서 자체를 직접 돌려주는 것이 아니라, 결과 집합을 가리키는 커서 객체를 반환하며, 이 커서를 통해 결과를 하나씩 순회(iterate)하거나 전체 문서를 출력할 수 있습니다.커서 방식을 사용하는 이유는 대량의 데이터를 한 번에 메모리에 로드하지 않고 배치(batch) 단위로 효율적으로 처리하기 위함입니다. 기본적으로 셸에서는
MongoDB에서 null 값을 다룰 때는 단순히 조건을 걸어 조회하는 것보다 $ne 연산자(not equal)를 활용하는 것이 효과적입니다. 이 글에서는 예제 컬렉션을 만들고, $ne 연산자를 사용해 특정 필드가 null이 아닌 문서만 조회하는 방법을 단계별로 살펴보겠습니다.1. 컬렉션 생성 및 문서 삽입먼저 insertOne() 메서드를 사용해 컬렉션에 문서를 삽입합니다. 두 번째 문서의 StudentSubject 필드에는 의도적으로 null 값을 넣어 두 문서의 차이를 명확하게 했습니다.> db.queryingNullDe
MongoDB에서 기존 레코드에 필드를 추가하는 방법MongoDB에서 기존 레코드(문서)에 새로운 필드를 추가하려면 update 명령어와 $set 연산자를 함께 사용하면 됩니다. 이 글에서는 실제 예제를 통해 컬렉션의 모든 문서에 새 필드를 일괄 추가하는 과정을 단계별로 살펴보겠습니다.1단계: 테스트용 컬렉션 생성 및 문서 삽입먼저 예제에 사용할 컬렉션을 만들고 문서를 삽입합니다. insertOne() 메서드를 사용하여 두 개의 클라이언트 문서를 추가해 보겠습니다.> db.addAFieldToEveryRecordDemo.ins
MongoDB $pull 연산자 소개MongoDB 컬렉션에 저장된 배열에서 특정 요소를 제거하고 싶다면 $pull 연산자를 사용하면 됩니다. $pull 연산자는 지정한 조건과 일치하는 값을 배열에서 모두 삭제해 주는 업데이트 연산자입니다.이 글에서는 실제 예제를 통해 컬렉션을 생성하고, $pull 연산자로 배열 요소를 제거한 뒤 결과를 확인하는 전 과정을 단계별로 살펴보겠습니다.1. 테스트용 컬렉션 생성하기먼저 예제로 사용할 문서가 포함된 컬렉션을 생성해 보겠습니다. 아래 예제에서는 학생 점수 배열을 가진 문서를 하나 삽입합니다.&
MongoDB에서 여러 매개변수(조건)를 동시에 만족하는 문서를 조회하려면 점(.) 표기법을 활용하면 됩니다. 특히 배열 안에 중첩된 필드나 하위 문서의 값을 조건으로 지정할 때 이 방법이 매우 유용합니다.1. 테스트용 컬렉션 생성하기먼저 예제로 사용할 컬렉션을 만들고 문서를 하나 삽입해 보겠습니다. 아래 예제에서는 고객 정보와 그 안에 중첩된 상세 정보(국가, 은행명, 잔액)를 함께 담은 구조를 사용합니다.> db.multipleParametersDemo.insertOne( ... { ... CustomerN
MongoDB에서 배열에 담긴 모든 요소를 조건 없이 한꺼번에 제거하고 싶다면 $set 연산자를 사용하면 됩니다. $set 연산자는 특정 필드의 값을 새로운 값으로 대체하는 역할을 하며, 배열 필드에 빈 배열([])을 할당하면 기존 요소들이 모두 사라지고 빈 배열만 남게 됩니다.이 글에서는 실제 예제를 통해 컬렉션 생성부터 배열 전체 삭제, 그리고 결과 확인까지 단계별로 살펴보겠습니다.1. 샘플 컬렉션 생성하기먼저 insertOne() 메서드를 사용해 학생 정보가 담긴 문서 두 개를 가진 컬렉션을 생성합니다.> db.pullA
MongoDB에서 배열(Array) 필드의 요소 순서를 반대로 뒤집고 싶다면 forEach() 메서드를 활용하면 됩니다. 이 글에서는 실제 예제를 통해 배열 필드를 역순으로 변경하는 과정을 단계별로 살펴보겠습니다.1. 테스트용 컬렉션 생성먼저 insertOne() 메서드를 사용해 문서가 포함된 컬렉션을 생성합니다. 여기서는 Skills라는 배열 필드를 가진 문서를 삽입해 보겠습니다.> db.reverseArrayDemo.insertOne({Skills:[C,Java]}); { acknowledged : true,
MongoDB에서 문자열에 포함된 숫자를 기준으로 정렬하려면 numericOrdering: true 옵션을 설정해야 합니다. 기본 정렬 방식은 사전 순(lexicographic)으로 문자열을 비교하기 때문에 STU1010이 STU908보다 앞에 오는 등 의도와 다른 결과가 나올 수 있습니다. collation의 numericOrdering 옵션을 사용하면 숫자 부분을 실제 숫자 값으로 인식해 자연스러운 순서로 정렬할 수 있습니다.먼저 컬렉션을 생성하고 문서를 삽입해 보겠습니다.> db.alphanumericSortDemo.in
MongoDB에서 저장된 문서의 각 필드가 어떤 데이터 유형을 가지고 있는지 확인해야 하는 경우가 종종 있습니다. 이럴 때 typeof 연산자를 사용하면 복잡한 설정 없이 손쉽게 필드의 데이터 유형을 파악할 수 있습니다.typeof로 데이터 유형 확인하기기본적인 사용 방법은 다음과 같습니다.typeof db.yourCollectionName.findOne().yourFieldName;findOne() 메서드로 문서 하나를 가져온 뒤, 확인하고 싶은 필드에 typeof를 적용하면 해당 필드의 데이터 유형이 문자열 형태로 반환됩니다.예
MongoDB에서 배열 내부의 특정 하위 요소(sub-element)만 조회하고 싶다면 위치 연산자(positional operator) $를 사용할 수 있습니다. 위치 연산자는 쿼리 조건에 일치하는 배열 요소만 프로젝션 결과에 포함시켜 주는 강력한 기능입니다.1. 테스트용 컬렉션 생성하기먼저 예제로 사용할 컬렉션을 만들고 문서를 삽입해 보겠습니다.> db.subElementQueryingDemo.insertOne( ... { ... ClientName:Chris, ... Status: [ { isM
MongoDB에서 문서 간 집합 교차 구하기MongoDB에서 단일 컬렉션에 저장된 여러 문서의 배열 필드 사이에 공통으로 존재하는 값을 찾고 싶다면 $setIntersection 연산자를 활용하면 됩니다. 이 연산자는 집계 파이프라인(aggregate) 안에서 두 개 이상의 배열을 입력받아, 모든 배열에 공통으로 포함된 요소만 반환합니다.먼저 예제로 사용할 컬렉션과 문서를 생성해 보겠습니다.> db.setInterSectionDemo.insertOne( ... {_id:101, Value1:[55,67,89]} ...
MongoDB에서 전체 필드에 문자열 접두사 추가하기MongoDB에서 특정 컬렉션의 모든 문서에 있는 문자열 필드 앞에 공통 문자열을 붙이고 싶은 경우가 있습니다. 예를 들어 이름 필드 앞에 Mr. 같은 호칭을 일괄적으로 추가하는 상황이 대표적입니다. 이때 애그리게이션 프레임워크(Aggregation Framework)의 $concat 연산자를 활용하면 간단하게 처리할 수 있습니다.1. 테스트용 컬렉션 생성먼저 실습에 사용할 컬렉션과 문서를 만들어 보겠습니다. insertOne() 메서드를 사용해 학생 이름 데이터를 차례로 삽입합니
MongoDB에서 슬라이스 체인이란?네, MongoDB의 애그리게이션(aggregate) 프레임워크를 활용하면 슬라이스 체인, 즉 슬라이스의 슬라이스(slice of slice)를 구현할 수 있습니다. 이는 배열 안에 배열이 중첩되어 있는 경우, 원하는 깊이까지 데이터를 추출하고 싶을 때 유용하게 사용됩니다.실제 동작 과정을 이해하기 위해 예제를 통해 단계별로 살펴보겠습니다.1단계: 테스트용 컬렉션 생성먼저 중첩 배열을 가진 문서를 포함하는 컬렉션을 생성합니다.> db.sliceOfSliceDemo.insertOne(...&n
MongoDB에서 여러 조건 구현하기데이터베이스 작업을 하다 보면 하나의 쿼리에 여러 조건을 적용해야 하는 경우가 자주 발생합니다. MongoDB에서는 $or 연산자를 사용하면 SQL의 WHERE 절에서 OR 조건을 걸듯이 여러 조건을 손쉽게 처리할 수 있습니다. 이 글에서는 실제 예제를 통해 MongoDB에서 여러 조건을 구현하는 방법을 단계별로 살펴보겠습니다.1단계: 샘플 데이터로 컬렉션 생성먼저 insertOne() 메서드를 사용해 문서가 포함된 컬렉션을 생성합니다.> db.multipleConditionDemo.inse
MongoDB에서 따옴표 이스케이프 처리하기MongoDB에 문자열 데이터를 저장할 때 값 안에 큰따옴표()가 포함되면 문법 오류나 데이터 손상이 발생할 수 있습니다. 이런 경우 큰따옴표의 유니코드 값인 \u0022를 활용하면 안전하게 이스케이프 처리할 수 있습니다.1. 컬렉션 생성 및 문서 삽입먼저 insert() 메서드를 사용하여 문서가 포함된 컬렉션을 생성해 보겠습니다. 이름 사이에 큰따옴표가 들어간 학생 이름을 \u0022로 표현하여 삽입합니다.> db.escapingQuotesDemo.insert({ StudentFul
MongoDB에서 값으로 사전 구조 찾기MongoDB에서는 find() 메서드를 사용하여 중첩된 문서(사전과 유사한 구조) 내부의 특정 값을 기준으로 데이터를 손쉽게 조회할 수 있습니다. 이 글에서는 실제 예제를 통해 컬렉션을 생성하고, 점 표기법(dot notation)을 활용해 원하는 값을 검색하는 방법을 단계별로 살펴보겠습니다.1. 샘플 컬렉션 생성하기먼저 고객 정보가 중첩된 문서 형태로 저장된 컬렉션을 만들어 보겠습니다. insertOne() 메서드를 사용하여 두 개의 문서를 삽입합니다.> db.findInDiction
MongoDB에서 사용자 비밀번호를 변경하는 방법MongoDB에서 사용자의 비밀번호를 변경하려면 changeUserPassword() 메서드를 사용해야 합니다. 이 메서드는 사용자 이름과 새로운 비밀번호 두 개의 인자를 받아 해당 사용자의 비밀번호를 즉시 갱신합니다.실제 동작 과정을 이해하기 위해, 먼저 특정 역할(role)을 가진 사용자를 하나 생성해 보겠습니다.1단계: 테스트용 사용자 생성다음은 admin 데이터베이스에서 test 데이터베이스에 대한 읽기/쓰기 권한을 가진 사용자를 생성하는 쿼리입니다.> use admin
MongoDB 배열에서 여러 객체 제거하기 ($pull 연산자) MongoDB에서 배열 안에 저장된 여러 객체를 한 번에 제거하려면 $pull 연산자를 사용하면 됩니다. $pull은 지정한 조건과 일치하는 모든 요소를 배열에서 삭제하는 업데이트 연산자입니다. 특히 $in 연산자와 함께 사용하면 여러 값을 하나의 쿼리로 동시에 제거할 수 있어 매우 편리합니다. 1. 예제 컬렉션 생성 먼저 테스트용으로 사용할 문서를 포함한 컬렉션을 생성합니다. > db.pullMultipleObjectsDemo.insertOne( ...