MongoDB 배열 요소에서 필드 제거하기MongoDB에서 배열 내부의 특정 요소에 포함된 필드(속성)를 삭제하려면 $unset 연산자와 위치 연산자($)를 함께 사용하면 됩니다. 이 글에서는 실제 예제를 통해 배열 안의 단일 문서에서 특정 필드만 깔끔하게 제거하는 방법을 단계별로 살펴보겠습니다.1. 테스트용 컬렉션 생성먼저 학생 정보가 담긴 배열을 가진 문서로 컬렉션을 생성합니다. 아래 예제에서는 세 명의 학생 데이터를 StudentDetails 배열에 삽입합니다.> db.unsetAnAttributeDemo.insertOn
MongoDB에서 $ne(not equal) 연산자는 특정 필드의 값이 지정한 값과 같지 않은 문서만 조회할 때 사용하는 비교 연산자입니다. SQL의 != 또는 <> 조건과 유사한 역할을 합니다.$ne 연산자 기본 문법$ne 연산자를 사용해 MongoDB를 쿼리하는 기본 문법은 다음과 같습니다.db.yourCollectionName.find({yourFieldName:{$ne:yourValue}}).pretty();예제 컬렉션 생성하기실습을 위해 학생 이름과 수학 점수를 담은 컬렉션을 만들어 보겠습니다. insertOne
MongoDB 배열 필드에서 요소의 인덱스 찾기MongoDB에서 배열 필드 내 특정 요소의 위치(인덱스)를 확인해야 할 때가 있습니다. 이럴 때 $indexOfArray 연산자를 사용하면 간단하게 해결할 수 있습니다.$indexOfArray는 애그리게이션(Aggregation) 파이프라인에서 사용되는 연산자로, 지정한 배열 안에서 주어진 값이 처음 등장하는 인덱스를 반환합니다. 실제 예제를 통해 살펴보겠습니다.1. 테스트용 컬렉션 생성먼저 insertOne() 메서드를 사용하여 문서가 담긴 컬렉션을 생성합니다. db.getIndex
MongoDB 컬렉션의 문서 수 구하기MongoDB에서 특정 컬렉션에 저장된 문서의 개수를 알고 싶다면 count() 메서드를 사용하면 됩니다. 나아가 데이터베이스에 존재하는 모든 컬렉션의 문서 수를 한 번에 조회하고 싶다면 db.getCollectionNames()와 자바스크립트의 map() 함수를 조합하는 것이 가장 간편합니다.기본 문법db.getCollectionNames().map(function(anyVariableName) { return { name: anyVariableName, count: db[anyVari
MongoDB에서 고유(distinct) 값 개수 세기MongoDB에서 특정 필드의 고유한 값이 몇 개인지 확인하려면 distinct() 메서드와 length 속성을 함께 사용하면 됩니다. 기본 문법은 다음과 같습니다.db.yourCollectionName.distinct(yourFieldName).length;먼저 예제로 사용할 컬렉션을 만들어 보겠습니다. 아래 명령으로 여러 개의 문서를 삽입합니다.> db.countDistinctDemo.insertOne({StudentName:John}); { acknowledged
MongoDB에서 쿼리 결과를 배열 형태로 얻고 싶다면 toArray() 메서드를 활용하면 됩니다. find() 메서드의 결과에 toArray()를 연결하면 커서가 아닌 자바스크립트 배열로 문서들을 손쉽게 변환할 수 있습니다.기본 문법db.컬렉션명.find({}, {필드명:1}).toArray();이제 실제 예제를 통해 단계별로 살펴보겠습니다.예제용 컬렉션 생성하기먼저 테스트에 사용할 컬렉션을 만들고 문서를 삽입합니다.> db.createArrayDemo.insertOne({UserName:Chris}); { ackno
MongoDB에서 날짜(Date) 데이터 저장하기MongoDB에 new Date() 형태의 날짜 값을 저장하려면 new ISODate()를 사용하면 됩니다. ISODate는 MongoDB에서 날짜와 시간을 ISO 8601 표준 형식으로 저장하는 기본 방식으로, 시간대 정보까지 정확하게 관리할 수 있어 실무에서 가장 널리 사용됩니다.아래 예제를 통해 문서(document)가 포함된 컬렉션을 생성하고 날짜 값을 저장하는 과정을 살펴보겠습니다.1. insertOne()으로 날짜 데이터 삽입> db.saveDateDemo.insert
MongoDB 쿼리에서 별칭(Alias) 생성하기MongoDB에서는 SQL처럼 AS 키워드를 사용하는 대신, 애그리게이션 프레임워크(aggregate framework)의 $project 단계를 활용하여 필드에 별칭을 지정할 수 있습니다. 이 방법을 사용하면 원본 데이터는 그대로 유지하면서 쿼리 결과에서만 필드 이름을 새롭게 바꿔 출력할 수 있습니다.먼저 예제로 사용할 컬렉션을 생성하고 문서를 삽입해 보겠습니다.> db.creatingAliasDemo.insertOne({_id:101,Name:John Doe});{ ackno
MongoDB에서 배열에 담긴 첫 번째 요소의 특정 속성만 조회하고 싶다면 $slice 연산자를 사용하면 됩니다. $slice는 프로젝션(projection) 단계에서 배열의 일부만 잘라내어 반환해 주는 연산자로, 배열이 긴 문서에서 필요한 데이터만 효율적으로 가져올 때 매우 유용합니다.1. 샘플 컬렉션 생성 및 문서 삽입먼저 예제에 사용할 컬렉션을 만들고 문서를 삽입해 보겠습니다. 아래 예시에서는 고객 정보가 배열 형태의 Details 필드에 저장되어 있습니다.> db.firstElementOfArray.insertOne(
MongoDB에서 ISODate를 숫자 값으로 변환해야 하는 경우가 종종 있습니다. 예를 들어 날짜 데이터를 정렬하거나, 계산에 활용하거나, 다른 시스템과 데이터를 주고받을 때 유용합니다. 이때 자바스크립트의 getTime() 메서드를 사용하면 간단하게 해결할 수 있습니다.getTime() 메서드란?getTime()은 1970년 1월 1일 00:00:00 UTC(유닉스 에포크)부터 해당 날짜까지 경과한 시간을 밀리초 단위의 숫자 값으로 반환합니다. 기본 문법은 다음과 같습니다.yourVariableName.getTime();ISOD
MongoDB에서 LIKE 쿼리 구현하기SQL의 LIKE 연산자처럼 특정 패턴과 일치하는 문자열을 검색하려면, MongoDB에서는 정규 표현식(Regex)을 활용하면 됩니다. 이 글에서는 실제 예제를 통해 MongoDB에서 LIKE와 유사한 방식으로 레코드를 조회하는 방법을 단계별로 살펴보겠습니다.1. 샘플 컬렉션 생성먼저 문서(document)를 포함하는 컬렉션을 생성합니다. db.likeDemo.insertOne({Name:James,Age:27}); { acknowledged : true, insertedId : O
MongoDB 셸에서 배열의 맨 앞(첫 번째 위치)에 새로운 값을 추가하려면 unshift() 메서드를 사용하면 됩니다.yourArrayName.unshift(yourValue);위 구문은 지정한 값을 배열의 가장 앞쪽에 삽입합니다. unshift()는 자바스크립트 배열 메서드로, MongoDB 셸(mongo shell)은 자바스크립트 기반으로 동작하기 때문에 셸 안에서 그대로 활용할 수 있습니다. 또한 이 메서드는 값을 추가한 후 배열의 새로운 길이를 반환한다는 점도 기억해 두면 좋습니다.1. 예제용 배열 생성먼저 문자열로 이루어
MongoDB에서 특정 월 또는 연도(날짜 제외) 조회하는 방법MongoDB에서 저장된 날짜 데이터의 일(day) 정보는 무시하고 특정 월(month) 또는 연도(year)에 해당하는 문서만 조회해야 하는 경우가 있습니다. 이럴 때는 집계 프레임워크(Aggregation Framework)와 $month 프로젝션 연산자를 조합하면 간단하게 해결할 수 있습니다.먼저 예제에 사용할 컬렉션을 생성하고 문서를 삽입해 보겠습니다.1단계: 테스트 컬렉션 생성 및 문서 삽입> db.specificMonthDemo.insertOne({&qu
MongoDB에서 배열 안에 중첩된 특정 요소만 골라서 추출하고 싶다면 $elemMatch 프로젝션 연산자를 사용하면 됩니다. 이 연산자를 활용하면 문서 전체를 가져오지 않고도 조건에 맞는 배열 요소만 깔끔하게 조회할 수 있습니다.1. 샘플 컬렉션 생성하기먼저 예제로 사용할 컬렉션을 만들어 보겠습니다. insertOne() 메서드로 클라이언트 정보와 프로젝트 상세 데이터가 담긴 문서를 삽입합니다.> db.extractSubArrayDemo.insertOne(... {... &n
MongoDB에서 배열 필드에 특정 값들이 모두 포함되어 있는지 확인하면서 레코드를 조회해야 하는 경우가 있습니다. 이럴 때는 $all 연산자를 사용하면 됩니다. $all은 지정한 배열의 모든 요소가 대상 배열 안에 존재할 때만 해당 문서를 반환합니다.1. 샘플 컬렉션 생성하기먼저 학생의 프로그래밍 스킬 목록을 담은 문서로 컬렉션을 생성해 보겠습니다.> db.subsetOfAnArrayDemo.insertOne({StudentProgrammingSkills: [Java,MongoDB,MySQL,C++,Data Struct
MongoDB에서 배열(리스트) 내부의 중복 값을 제거하려면 애그리게이션 프레임워크(aggregation framework)와 $setUnion 연산자를 함께 사용하면 됩니다. $setUnion은 집합 연산을 수행하는 연산자로, 입력 배열을 하나의 집합으로 취급하기 때문에 자동으로 중복 요소가 제거되며, 결과는 오름차순으로 정렬됩니다.1. 샘플 컬렉션 생성먼저 문서를 포함한 컬렉션을 생성해 보겠습니다. 아래 예제에서는 강사 정보를 저장하는 컬렉션을 만들고, InstructorSubject 필드에 중복된 과목명이 포함된 배열을 삽입합
MongoDB 컬렉션에서 특정 키-값 쌍만 조회하고 싶다면 점(.) 표기법(dot notation)을 활용하면 됩니다. 점 표기법을 사용하면 중첩된 문서(nested document) 내부의 특정 필드에 손쉽게 접근할 수 있습니다.1. 샘플 컬렉션 생성하기먼저 실습에 사용할 문서를 포함한 컬렉션을 생성해 보겠습니다. 아래 예제에서는 학생 정보를 담은 중첩 문서를 하나 삽입합니다.> db.readSpecificKeyValueDemo.insertOne( ... { ... _id: 100, ... Stud
MongoDB에서 두 필드 값의 합계를 기준으로 문서를 정렬하려면 애그리게이션 프레임워크(aggregate framework)를 사용해야 합니다. 일반적인 find() 메서드만으로는 계산된 값을 기준으로 정렬할 수 없기 때문에, $project와 $sort 스테이지를 조합하는 것이 표준적인 해결 방법입니다.1. 샘플 컬렉션 생성먼저 예제에 사용할 컬렉션을 만들고 문서를 삽입해 보겠습니다.> db.orderByTwoFieldsDemo.insertOne({Value1:10,Value2:35}); { acknowledged :
MongoDB에서 문서 내 하위 배열(sub-array)에 포함된 값들 중 가장 높은 값을 찾으려면 애그리게이션 프레임워크(Aggregation Framework)를 활용하는 것이 가장 효과적입니다. 이 글에서는 실제 예제를 통해 단계별로 살펴보겠습니다.1. 샘플 컬렉션 생성하기먼저 학생 정보와 수학 점수를 담고 있는 문서들을 포함한 컬렉션을 생성합니다. 각 문서는 여러 학생의 이름과 점수를 배열 형태로 가지고 있습니다.> db.findHighestValueDemo.insertOne( ... { ... _id: 10001, .
MongoDB에서 업데이트 작업 후 실제로 몇 개의 문서가 수정되었는지 확인해야 하는 경우가 자주 있습니다. 이를 위해서는 runCommand 메서드와 함께 getlasterror 명령을 사용하면 됩니다. getlasterror는 가장 최근에 실행된 쓰기(write) 작업에 대한 상세 정보를 반환하며, 그중 n 필드가 업데이트된 문서의 개수를 나타냅니다.1. 샘플 컬렉션 생성 및 문서 삽입먼저 테스트용 컬렉션을 만들고 문서를 여러 개 삽입하겠습니다.> db.getNumberOfUpdatedDocumentsDemo.insertO