사용자의 로그인 날짜를 저장해 두었다고 가정해 보겠습니다. 이제 특정 기간 사이에 로그인한 사용자, 즉 로그인 날짜가 지정된 범위에 속하는 사용자 수를 조회하고 싶은 상황이라면 어떻게 해야 할까요? 이럴 때 MongoDB에서는 $gte(크거나 같음)와 $lt(작음) 연산자를 count() 메서드와 함께 사용하면 간단하게 해결할 수 있습니다.샘플 컬렉션 생성하기먼저 문서를 담고 있는 컬렉션을 생성해 보겠습니다. 아래 예제에서는 사용자 이름(UserName)과 로그인 날짜(UserLoginDate)를 저장했습니다.> db.find
MongoDB에서 ObjectId로 레코드 조회하기MongoDB에서 각 문서는 자동으로 고유한 _id 필드를 가지며, 이 값은 ObjectId 형태로 저장됩니다. 이번 글에서는 ObjectId 값을 기준으로 특정 레코드(문서)를 조회하는 방법을 단계별로 살펴보겠습니다.1. 샘플 컬렉션 생성먼저 insertOne() 메서드를 사용하여 문서가 담긴 컬렉션을 생성해 보겠습니다.> db.findByObjectIdDemo.insertOne({ClientName:Larry,ClientAge:23}); { acknowledged :
MongoDB에서 서로 다른 두 개의 배열 필드를 하나로 합쳐야 할 때가 있습니다. 이럴 때 가장 간단하고 효율적인 방법은 집계 파이프라인(aggregate)에서 $setUnion 연산자를 사용하는 것입니다.$setUnion은 두 배열을 마치 집합(set)처럼 취급하여 병합하며, 중복된 값은 자동으로 제거하고 결과를 오름차순으로 정렬해 반환합니다.1. 샘플 컬렉션 생성하기먼저 두 개의 배열 필드를 가진 문서를 포함하는 컬렉션을 생성해 보겠습니다.> db.mergeTwoArrayFieldDemo.insertOne({Natural
MongoDB에서 MySQL LIKE 문을 구현하는 방법MySQL에서 자주 사용하는 LIKE 문은 특정 패턴과 일치하는 문자열을 검색할 때 유용합니다. MongoDB에는 LIKE 문이 직접 존재하지 않지만, 대신 $regex 연산자(정규 표현식)를 사용하면 동일한 기능을 손쉽게 구현할 수 있습니다.이번 글에서는 실제 예제를 통해 MongoDB에서 LIKE 문과 같은 패턴 매칭을 수행하는 방법을 단계별로 살펴보겠습니다.1. 테스트용 컬렉션 생성 및 데이터 삽입먼저 예제에 사용할 컬렉션을 만들고 문서를 삽입합니다. insertOne()
MongoDB에서 내부(중첩) 배열에 데이터 삽입하기MongoDB에서 문서 안에 중첩된 배열, 즉 내부 배열에 새로운 데이터를 추가하려면 $addToSet 연산자를 사용하면 됩니다. $addToSet은 배열에 값을 추가하지만, 이미 동일한 값이 존재하는 경우에는 중복 없이 한 번만 저장된다는 특징이 있습니다.이 글에서는 실제 예제를 통해 내부 배열에 데이터를 삽입하는 전 과정을 단계별로 살펴보겠습니다.1단계: 샘플 컬렉션 생성먼저 insertOne() 메서드를 사용해 UserDetails 배열을 포함하는 문서로 컬렉션을 생성합니다.
MongoDB에서 최댓값과 최솟값 구하기MongoDB에서 컬렉션에 저장된 특정 필드의 최댓값과 최솟값을 조회하려면 애그리게이션(aggregate) 프레임워크와 함께 $max, $min 연산자를 사용하면 됩니다. 이 글에서는 실제 예제를 통해 단계별로 확인해 보겠습니다.1. 샘플 데이터로 컬렉션 생성하기먼저 insertOne() 메서드를 사용해 여러 개의 문서를 삽입하여 테스트용 컬렉션을 만들어 보겠습니다.> db.maxAndMinDemo.insertOne({Value:98}); { acknowledged : true,
MongoDB에서 배열 필드가 쿼리에 지정된 항목들과 정확히 일치하는 문서를 찾으려면 $all 연산자를 사용하면 됩니다. 이 연산자는 지정된 모든 값이 배열 안에 포함되어 있는 문서만 반환합니다.1. 샘플 컬렉션 생성하기먼저 문서가 포함된 컬렉션을 생성해 보겠습니다.> db.findDocumentExactlySameInArrayDemo.insertOne({TechnicalSubjects:[C++,Java,MongoDB]}); { acknowledged : true, insertedId : ObjectId(5cd69a
MongoDB $group과 $push로 값 목록 가져오기MongoDB에서 특정 필드를 기준으로 문서를 그룹화하고, 각 그룹에 속한 값들을 배열(목록) 형태로 한 번에 조회하려면 $group 집계 단계와 $push 연산자를 조합하면 됩니다. 이 글에서는 실제 예제를 통해 그 과정을 단계별로 살펴보겠습니다.1단계: 샘플 컬렉션 생성먼저 예제에 사용할 문서들이 담긴 컬렉션을 만듭니다. 아래에서는 사용자별로 수강한 과목 정보를 저장하는 groupByDemo 컬렉션을 생성하고 있습니다.> db.groupByDemo.insertOne(
MongoDB에서 부분 데이터 삭제하기MongoDB에서는 조건에 맞는 문서뿐 아니라 특정 순번 이후의 문서들만 골라서 삭제할 수도 있습니다. 이 글에서는 find(), skip(), toArray(), 그리고 map() 함수를 조합하여 컬렉션의 일부 데이터(부분 데이터)를 삭제하는 방법을 단계별로 살펴보겠습니다.1단계: 테스트용 컬렉션 만들기먼저 insertOne() 메서드를 사용해 deleteDemo 컬렉션에 이름 데이터가 담긴 문서 10개를 삽입합니다.> db.deleteDemo.insertOne({Name:John});{
변수 인덱스로 MongoDB 배열 업데이트하기MongoDB에서 문서 내 배열을 변수에 저장된 인덱스 값으로 업데이트하려면 아래 구문을 사용하면 됩니다. 여기서 yourIndexValue는 실제 인덱스 값을 의미하고, yourIndexVariableName은 그 인덱스를 담고 있는 변수 이름입니다.var yourIndexVariableName = yourIndexValue,anyVariableName = { $set: {} };yourVariableName[$set][yourFieldName. + yourIndexVariableNam
MongoDB에서 오늘 이전에 만료된 문서 조회하기MongoDB에서 특정 날짜가 지나 만료된 문서를 조회하려면 $lte 연산자와 Date() 함수를 함께 사용하면 됩니다. $lte는 less than or equal(작거나 같음)을 의미하는 비교 연산자로, 현재 시간보다 이전이거나 같은 날짜 값을 가진 문서만 필터링할 수 있습니다.아래에서 예제를 통해 단계별로 살펴보겠습니다. 이 글에서는 현재 날짜를 2019-05-11로 가정합니다.1. 샘플 컬렉션 생성 및 문서 삽입먼저 예제에 사용할 컬렉션을 생성하고 여러 개의 문서를 삽입합니다
MongoDB에서 하위 문서(sub-document) 일치 조건을 기준으로 데이터를 정렬하려면 애그리게이션 프레임워크(aggregate)를 활용하는 것이 가장 효과적입니다. 일반적인 find() 메서드만으로는 배열 내부의 특정 요소 값을 기준으로 정렬하기 어렵기 때문입니다. 이번 글에서는 실제 예제를 통해 그 과정을 단계별로 살펴보겠습니다.샘플 컬렉션 생성하기먼저 학생 이름(StudentName)과 나이(Age), 점수(StudentScore)를 담은 하위 문서 배열(StudentDetails)로 구성된 컬렉션을 생성하고 문서 두
MongoDB에서 특정 이름 목록에 포함된 값을 가진 문서를 조회하고 그 개수(태그 수)를 확인하려면 $in 연산자를 사용하면 됩니다. 이 글에서는 실제 예제를 통해 단계별로 살펴보겠습니다.1. 컬렉션 생성 및 문서 삽입먼저 insertOne() 메서드를 사용하여 문서가 담긴 컬렉션을 생성합니다.> db.tagCountDemo.insertOne({ListOfNames:[John,Sam,Carol]});{ acknowledged : true, insertedId : O
MongoDB 쿼리 결과에 정적 값 필드 추가하기MongoDB에서 find() 쿼리 결과에 모든 문서에 동일하게 들어가는 고정 값(정적 값)을 가진 새로운 필드를 추가하려면 $literal 연산자를 애그리게이션 프레임워크와 함께 사용하면 됩니다. $literal은 전달받은 값을 해석하지 않고 그대로 반환하는 연산자이기 때문에, 필드 이름이나 다른 표현식으로 잘못 처리될 걱정 없이 원하는 상수 값을 안전하게 결과에 포함할 수 있습니다.1단계: 샘플 컬렉션 생성먼저 실습에 사용할 컬렉션을 만들고 문서 세 개를 삽입합니다.> db.
MongoDB에 저장된 문자열 값에 불필요한 공백이 포함되어 있으면 데이터 검색이나 비교 작업 시 문제가 발생할 수 있습니다. 이 글에서는 forEach() 메서드와 JavaScript의 trim() 함수를 활용하여 컬렉션 내 모든 문서의 문자열 값에서 선행 및 후행 공백을 제거하는 방법을 알아보겠습니다.1. 테스트용 컬렉션 생성먼저 공백이 포함된 문자열 값을 가진 문서를 삽입하여 테스트용 컬렉션을 만들어 보겠습니다.> db.removingWhiteSpaceDemo.insertOne({Title: Introduction to
MongoDB 셸에서 문서 값 출력하기MongoDB 셸에서 특정 필드의 값만 출력하고 싶다면 forEach() 메서드를 활용하면 됩니다. 이 메서드는 조회된 각 문서를 순회하면서 원하는 작업을 수행할 수 있게 해주며, print() 함수와 함께 사용하면 특정 필드의 값을 깔끔하게 출력할 수 있습니다.먼저 예제에 사용할 컬렉션을 생성하고 문서를 삽입해 보겠습니다.> db.printDocuementValueDemo.insertOne({InstructorName:John Smith}); { acknowledged : true,
MongoDB에서 기존 배열에 새로운 요소를 추가하려면 $addToSet 연산자와 함께 update() 메서드를 사용하면 됩니다. $addToSet은 배열에 값을 추가할 때 중복된 값이 이미 존재하지 않는 경우에만 추가한다는 점이 특징입니다. 1. 샘플 컬렉션 생성 먼저 문서가 포함된 컬렉션을 생성해 보겠습니다. > db.pushElements.insertOne({Comments:[Good,Awesome,Nice]}); { acknowledged : true, insertedId : ObjectId(5cd682597
MongoDB에서 배열(Array) 타입의 필드에 특정 값이 포함되어 있는지 확인하고 싶다면 $in 연산자를 사용하면 됩니다. $in은 지정한 값 목록 중 하나라도 배열 안에 존재하는 경우 해당 문서를 조회 결과로 반환합니다.아래에서 실제 예제를 통해 컬렉션 생성부터 값 존재 여부 확인까지 단계별로 살펴보겠습니다.1. 테스트용 컬렉션 생성 및 문서 삽입먼저 insertOne() 메서드를 사용해 예제 데이터를 저장할 컬렉션을 만듭니다. 각 문서는 사용자 이름(UserName)과 메시지 배열(UserMessage)을 가지고 있습니다.&
MongoDB에서는 $avg 연산자를 애그리게이션(aggregate) 프레임워크와 함께 사용하여 배열에 저장된 값들의 평균을 손쉽게 계산할 수 있습니다. 특히 $addFields 스테이지를 조합하면 계산된 평균값을 기존 문서에 새로운 필드로 추가할 수 있어 매우 유용합니다.이 글에서는 학생 점수(StudentScore) 배열의 평균을 구하고, 그 결과를 원본 문서에 포함시키는 과정을 단계별로 살펴보겠습니다.1단계: 샘플 컬렉션 생성하기먼저 insertOne() 메서드를 사용하여 학생 정보 배열이 담긴 문서를 생성합니다.> db
MongoDB에서 배열(array)에 포함된 문서, 즉 내장 문서(embedded document)에 새로운 필드를 추가해야 하는 경우가 종종 있습니다. 이럴 때는 update() 메서드와 위치 연산자인 $를 함께 사용하면 간단하게 해결할 수 있습니다.이 글에서는 실제 예제를 통해 배열 안의 특정 문서에 필드를 추가하는 전체 과정을 단계별로 살펴보겠습니다.1단계: 컬렉션 생성 및 문서 삽입먼저 insertOne() 메서드를 사용하여 컬렉션을 생성하고 문서를 삽입합니다. 아래 예제에서는 클라이언트 정보를 담은 문서를 만들고, 그 안에