MongoDB의 집계 프레임워크(aggregate())에서 $match 단계는 일반 find() 쿼리처럼 조건에 맞는 문서만 골라내는 파이프라인 단계입니다. 여기에 $or 연산자를 조합하면 여러 조건 중 하나라도 만족하는 문서를 손쉽게 필터링할 수 있습니다. 이 글에서는 실제 예제를 통해 $match와 $or를 함께 사용하는 방법을 단계별로 살펴보겠습니다.1. 샘플 데이터로 컬렉션 생성하기먼저 insertOne() 메서드를 사용해 학생 정보 문서들이 담긴 컬렉션을 생성합니다. 각 문서에는 이름(StudentFirstName), 성(
MongoDB 배열 인덱싱의 원리MongoDB는 배열 필드의 모든 값을 개별적으로 인덱싱하는 멀티키(Multikey) 인덱스 방식을 사용합니다. 덕분에 배열 전체가 아닌 특정 요소 하나만으로도 해당 문서를 빠르게 조회할 수 있습니다.1단계: 예제 컬렉션 생성개념을 이해하기 위해 먼저 배열 필드를 가진 문서로 컬렉션을 생성해 보겠습니다. 다음 쿼리를 실행합니다.> db.indexingForArrayElementDemo.insertOne({"StudentFavouriteSubject":["MongoDB&
MongoDB 배열에서 객체 제거하기MongoDB에서 배열에 저장된 특정 객체를 삭제해야 할 때는 $pull 연산자를 사용하면 됩니다. $pull 연산자는 지정한 조건과 일치하는 모든 요소를 배열에서 자동으로 제거해 주는 강력한 업데이트 연산자입니다.개념을 쉽게 이해할 수 있도록, 실제 예제 문서를 담은 컬렉션을 만들어 단계별로 살펴보겠습니다.1단계: 샘플 컬렉션 생성먼저 학생 정보와 학술 프로젝트 배열을 포함하는 문서를 삽입합니다. 컬렉션 생성 쿼리는 다음과 같습니다.> db.removeObjectFromArrayDemo.i
MongoDB 콘솔 지우는 방법MongoDB 셸을 오래 사용하다 보면 이전에 실행했던 쿼리와 출력 결과가 계속 쌓여서 화면이 복잡해집니다. 이럴 때 콘솔을 깨끗하게 정리하면 작업 흐름이 한결 편안해집니다. MongoDB에서 콘솔을 지우는 방법은 크게 두 가지가 있습니다.방법 1: 키보드 단축키 Ctrl + L 사용가장 빠르고 간편한 방법은 키보드 단축키를 활용하는 것입니다.Ctrl + LCtrl 키와 L 키를 동시에 누르면 현재 콘솔 화면이 즉시 지워집니다. 아래는 실습에 사용한 콘솔 화면입니다.위 단축키를 눌러 콘솔을 지운 후의
MongoDB에서 현재 사용 중인 데이터베이스 확인하기MongoDB 셸(mongo shell)에서 현재 사용 중인 데이터베이스를 확인하는 명령어는 아주 간단합니다. 바로 db를 입력하면 됩니다.db1단계: 서버에 존재하는 데이터베이스 목록 확인먼저 MongoDB 서버에 어떤 데이터베이스들이 존재하는지 확인해 보겠습니다. 다음 명령어를 사용합니다.> show dbs;실행 결과로 시스템에 존재하는 모든 데이터베이스가 표시됩니다.admin 0.000GB config 0.000GB local 0.000GB sample 0.000GB
MongoDB에서 특정 키가 있는 레코드를 선택하는 방법MongoDB에서 특정 필드(키)를 가지고 있는 문서만 골라서 조회하고 싶다면 $exists 연산자를 활용하면 됩니다. 이 연산자는 지정한 필드가 문서 안에 실제로 존재하는지 여부를 판단하여, 조건에 맞는 레코드만 반환해 줍니다.기본 문법db.yourCollectionName.find({ yourFieldName: { $exists: true } }).pretty();$exists에 true를 지정하면 해당 필드가 존재하는 문서만 조회되고, false를 지정하면 반대로 필드가
MongoDB에서 부울 필드가 true가 아닌 문서 조회하기 MongoDB에서 특정 부울(Boolean) 필드의 값이 true가 아닌 문서만 골라내야 하는 경우가 종종 있습니다. 이럴 때는 $ne(not equal, 같지 않음) 연산자를 사용하면 간단하게 해결할 수 있습니다. $ne 연산자 기본 문법 db.yourCollectionName.find({yourFieldName: {$ne: true}}).pretty(); $ne는 지정한 값과 일치하지 않는 모든 문서를 반환합니다. 즉, 위 쿼리는 해당 필드의 값이 false인 문서뿐
MongoDB 셸에서 pretty() 함수로 가독성 높은 출력하기MongoDB 셸에서 조회 결과를 보기 좋게 출력하려면 커서(cursor) 객체에 pretty() 함수를 호출하면 됩니다. 기본 문법은 다음과 같습니다.db.yourCollectionName.find().pretty();개념을 이해하기 위해 실제 문서가 포함된 컬렉션을 만들어 보겠습니다. 아래는 문서와 함께 컬렉션을 생성하는 쿼리입니다.> db.prettyDemo.insertOne({ClientName:Larry,ClientAge:27,ClientFavoriteC
MongoDB 데이터베이스 전체 삭제하기MongoDB에서 데이터베이스 내의 모든 데이터를 한 번에 삭제하려면 dropDatabase() 함수를 사용하면 됩니다. 이 명령어는 해당 데이터베이스와 그 안에 포함된 모든 컬렉션 및 문서를 영구적으로 제거합니다.기본 문법dropDatabase()의 기본적인 사용 문법은 다음과 같습니다.use yourDatabaseName; db.dropDatabase();위 구문을 실행하면 지정한 데이터베이스의 모든 내용이 삭제됩니다.실전 예제: flightInformation 데이터베이스 삭제실제로 Mo
MongoDB에서 날짜(Date) 값을 조건으로 문서를 조회하고 싶다면, ISODate 타입과 비교 연산자를 함께 사용하면 됩니다. 이 글에서는 실제 예제를 통해 날짜 기반 쿼리 작성 방법을 단계별로 살펴보겠습니다.1. 예제용 컬렉션 생성먼저 개념을 이해하기 위해 문서가 포함된 컬렉션을 생성해 보겠습니다. 승객 정보(이름, 나이, 도착 시간)를 저장하는 컬렉션을 만드는 쿼리는 다음과 같습니다.> db.returnQueryFromDate.insertOne({PassengerName:John,PassengerAge:23,Passe
MongoDB에서 필드가 없는 문서 찾기MongoDB에서 특정 필드가 존재하지 않는 문서를 조회하려면 $exists 연산자를 false 값과 함께 사용하면 됩니다. 기본 문법은 다음과 같습니다.db.컬렉션명.find({ 필드명: { $exists: false } }).pretty();$exists: false 조건은 해당 필드를 아예 가지고 있지 않은 문서만 반환합니다. 이는 MongoDB의 스키마가 유연하기 때문에 가능한 기능으로, 동일한 컬렉션 내에서 서로 다른 구조의 문서가 공존할 수 있습니다.예제 컬렉션 생성하기문법을 실제로
MongoDB에서 ISODate() 형식으로 저장된 날짜 필드를 조회하려면 비교 연산자를 함께 사용해야 합니다. 그중 가장 널리 쓰이는 것이 바로 $gte(크거나 같음) 연산자입니다. 이 글에서는 실제 예제를 통해 ISODate 기반 날짜 쿼리를 작성하는 방법을 단계별로 살펴보겠습니다.1. 테스트용 컬렉션 생성하기먼저 개념을 이해하기 위해 문서가 하나 포함된 컬렉션을 생성합니다. 아래 쿼리는 학생 정보와 입학 날짜(AdmissionDate)를 ISODate 형식으로 저장하는 예제입니다.> db.dateDemo.insertOne
MongoDB 셸(Mongo Shell)에서 서버에 존재하는 모든 데이터베이스의 목록을 확인하려면 show 명령어를 사용하면 됩니다. 기본 문법은 다음과 같습니다.show dbs;show dbs 명령어 실행 예시실제로 MongoDB에서 위 명령어를 실행해 보겠습니다. 쿼리는 다음과 같습니다.> show dbs;실행 결과는 아래와 같습니다.admin 0.000GB config 0.000GB local 0.000GB sample 0.000GB sampleDemo 0.000GB test 0.003GB출력 결과를 보면 각 데이터베이스
MongoDB 서버를 여러 단계를 거치지 않고 단일 명령어만으로 깔끔하게 종료하고 싶다면, mongo 셸의 --eval 옵션과 shutdownServer() 메서드를 조합하면 됩니다. 이 방법은 관리자(admin) 데이터베이스에 접속해 종료 명령을 직접 실행하는 방식으로, 가장 빠르고 간편한 MongoDB 종료 방법으로 널리 사용됩니다.MongoDB 종료 명령어아래 명령어 하나만 입력하면 MongoDB 서버가 즉시 종료됩니다.mongo --eval db.getSiblingDB(admin).shutdownServer()이 명령어의 동
MongoDB에서 사용자 목록을 확인하는 두 가지 방법MongoDB 셸(Mongo Shell)에서 현재 데이터베이스에 등록된 모든 사용자를 조회하려면 getUsers() 메서드와 show users 명령 두 가지 방식을 사용할 수 있습니다. 두 방법은 본질적으로 동일한 목적, 즉 사용자 목록 조회를 수행하지만, 출력 형태와 활용 방식에서 약간의 차이가 있습니다.이 글에서는 두 방법의 문법과 실제 실행 결과를 예제와 함께 자세히 살펴보겠습니다.방법 1: getUsers() 메서드 사용getUsers()는 데이터베이스 객체에 직접 호출
PyMongo는 Python 환경에서 MongoDB를 손쉽게 다룰 수 있도록 도와주는 공식 드라이버이자 도구 모음입니다. 이 글에서는 PyMongo의 몽고 셸(mongo shell) 문법을 활용해 정규식(regex) 쿼리를 수행하는 방법을 단계별로 살펴보겠습니다.정규식 쿼리 기본 문법MongoDB에서 특정 단어로 시작하는 문서를 찾으려면 $regex 연산자와 정규식 앵커 ^를 함께 사용합니다. 기본 문법은 다음과 같습니다.db.yourCollectionName.find({yourFieldName:{$regex:^yourWords}}
MongoDB에서 특정 필드를 가지고 있지 않은 문서를 조회하려면 $exists 연산자를 사용하면 됩니다. $exists 값이 false인 조건을 걸면 해당 필드가 존재하지 않는 문서만 반환됩니다.기본 문법> db.컬렉션명.find({필드명:{$exists:false}}).pretty();문법을 이해하기 위해 실제 예제를 통해 살펴보겠습니다.예제 컬렉션 생성먼저 테스트용 컬렉션에 문서를 삽입합니다. 세 개의 문서를 순서대로 추가하는 쿼리는 다음과 같습니다.> db.findDocumentDoNotHaveCertainFiel
MongoDB에서 여러 키로 고유(distinct) 값 구하기MongoDB의 집계 프레임워크(Aggregation Framework)를 활용하면 여러 개의 키를 조합하여 고유(distinct)한 값을 손쉽게 추출할 수 있습니다. 일반적인 distinct() 메서드는 단일 필드에 대한 고유 값만 지원하지만, $group 연산자를 사용하면 복수 필드의 조합 기준으로 중복을 제거할 수 있습니다.개념을 이해하기 위해 먼저 샘플 문서가 포함된 컬렉션을 생성해 보겠습니다. 아래 쿼리는 distinctWithMultipleKeysDemo 컬렉션
MongoDB에서 배열 필드가 특정 배열의 요소들로만 구성되어 있는지, 즉 제공된 배열의 어떤 조합이든 포함하는지 확인해야 하는 경우가 있습니다. 이럴 때는 $nin 연산자를 $elemMatch 및 $not 연산자와 함께 사용하면 됩니다.테스트용 컬렉션 생성하기개념을 쉽게 이해하기 위해 먼저 샘플 문서가 포함된 컬렉션을 생성해 보겠습니다. 아래 쿼리를 순서대로 실행하세요.> db.combinationOfArrayDemo.insertOne({StudentName:Larry,StudentAge:21,StudentFavouriteT
MongoDB에서 배열 안에 배열이 중첩된 구조(배열의 배열)를 쿼리하려면 $in 연산자를 사용합니다. 개념을 쉽게 이해하기 위해 실제 문서를 담은 컬렉션을 만들어 단계별로 살펴보겠습니다.1. 컬렉션 생성 및 문서 삽입먼저 insertOne() 메서드를 사용해 컬렉션에 문서를 삽입합니다. 쿼리는 다음과 같습니다.> db.arrayOfArraysDemo.insertOne({EmployeeName:Larry,EmployeeSkills:[[Java,MongoDB,MySQL,SQL Server]]}); { acknowledged