MongoDB에서 숫자 컬렉션 삭제하기MongoDB에서 컬렉션 이름이 숫자로만 구성되어 있으면 일반적인 점(.) 표기법으로 접근할 수 없습니다. 이 경우 db.getCollection() 메서드를 사용해야 하며, 삭제 역시 마찬가지입니다.숫자 컬렉션 삭제 기본 문법숫자로 된 컬렉션 이름을 삭제하려면 다음과 같은 문법을 사용합니다.db.getCollection(yourNumericCollectionName).drop();1단계: 숫자 이름의 컬렉션 생성먼저 실습을 위해 숫자 이름의 컬렉션을 생성해 보겠습니다. 다음 쿼리를 실행합니다.
MongoDB에서 컬렉션의 전체 문서가 아닌 특정 필드만 가져오고 싶다면 find() 메서드에 프로젝션(projection)을 사용하면 됩니다. 프로젝션은 쿼리 결과에 포함할 필드(1)와 제외할 필드(0)를 지정하는 기능으로, 불필요한 데이터 전송을 줄여 쿼리 성능을 높일 수 있습니다.1. 테스트용 컬렉션 생성먼저 예제에 사용할 컬렉션을 만들고 문서를 삽입해 보겠습니다.> db.specificFieldDemo.insertOne({FirstName:John,LastName:Doe}); { acknowledged : true
MongoDB에서 show dbs 명령어를 실행했는데 방금 생성한 데이터베이스가 목록에 나타나지 않아 당황한 적이 있으신가요? 그렇다면 걱정하지 않으셔도 됩니다. 이것은 MongoDB의 정상적인 동작 방식 때문입니다. 데이터베이스가 표시되지 않는 원인 show dbs 명령어가 새로 만든 데이터베이스를 보여주지 않는 가장 일반적인 이유는 해당 데이터베이스 안에 컬렉션(collection)과 문서(document)를 아직 생성하지 않았기 때문입니다. MongoDB에서는 use 명령어로 데이터베이스를 전환하더라도 실제 데이터가 저장되기
MongoDB에서 배열(Array) 필드 안에 포함된 null 값을 제거해야 하는 경우가 종종 있습니다. 이럴 때 $pull 연산자를 사용하면 간단하게 해결할 수 있습니다. 이 글에서는 실제 예제를 통해 MongoDB 배열에서 null 요소를 삭제하는 방법을 단계별로 살펴보겠습니다.1. 테스트용 컬렉션 생성하기먼저 null 값이 포함된 문서를 가진 컬렉션을 생성합니다. 아래 예제에서는 학생 정보를 담는 StudentDetails 배열에 의도적으로 null 요소를 추가했습니다.> db.removeNullDemo.insertOne
MongoDB에서 특정 필드가 실제로 존재하는 경우에만 조건을 적용하고 싶다면 $or 연산자를 활용하면 됩니다. $or 연산자는 배열로 전달된 여러 조건 중 하나라도 참이면 해당 문서를 반환하기 때문에, 필드 자체가 없는 문서와 필드가 존재하면서 조건을 충족하는 문서를 한 번의 쿼리로 함께 조회할 수 있습니다. 1. 샘플 컬렉션 생성하기 먼저 insertOne() 메서드를 사용해 테스트용 컬렉션에 문서를 삽입합니다. 마지막 문서(Robert)에는 StudentAge 필드가 의도적으로 빠져 있다는 점에 유의하세요. > db.ap
group은 MongoDB에서 집계(aggregation) 작업에 사용되는 메서드 이름이기 때문에 컬렉션 이름으로 사용하면 안 됩니다. 하지만 실수로 이런 이름으로 컬렉션을 생성했다면 getCollection(group).drop() 메서드를 사용해 손쉽게 삭제할 수 있습니다. 1. group 컬렉션 생성 및 데이터 삽입 먼저 group이라는 이름의 컬렉션을 만들고 문서를 삽입해 보겠습니다. > db.createCollection(group); { ok : 1 } > db.getCollection(group).insert
MongoDB에서 find()와 findOne()의 차이점MongoDB에서 데이터를 조회할 때 가장 많이 사용되는 두 메서드가 바로 find()와 findOne()입니다. 두 메서드는 비슷해 보이지만 반환 방식에서 중요한 차이가 있습니다.findOne()은 쿼리 조건과 일치하는 첫 번째 문서(document)를 반환하며, 일치하는 문서가 하나도 없으면 null을 반환합니다.반면 find() 메서드는 일치하는 문서가 없더라도 null을 반환하지 않습니다. 대신 항상 커서(cursor) 객체를 반환합니다. 이 커서를 통해 결과 문서들을
MongoDB 상한 컬렉션이란?상한 컬렉션(Capped Collection)은 고정된 크기를 가지는 특수한 컬렉션으로, 삽입 순서에 따라 문서를 저장하고 조회하는 높은 처리량(throughput)의 작업에 최적화되어 있습니다. 저장 공간이 가득 차면 가장 오래된 문서부터 자동으로 덮어쓰기 때문에 로그, 캐시 등 순환 버퍼 형태의 데이터 관리에 유용합니다.이러한 상한 컬렉션에는 컬렉션의 크기(size)뿐만 아니라 저장할 수 있는 최대 문서 수(max)도 지정할 수 있습니다.max 값을 설정하는 기본 문법상한 컬렉션에 max 값을 설정
MongoDB에서 특정 필드의 값이 NaN(Not a Number)인 문서를 모두 찾아야 하는 경우가 있습니다. 데이터 검증이나 이상치 분석을 할 때 자주 필요한 작업인데요. 이 글에서는 NaN 값이 저장된 컬렉션을 만들고, 해당 문서를 조회하는 다양한 방법을 단계별로 살펴보겠습니다.기본 조회 문법MongoDB에서 NaN 값을 가진 필드를 찾는 기본적인 쿼리 문법은 다음과 같습니다.db.yourCollectionName.find({ yourFieldName: NaN })테스트용 컬렉션 생성하기실습을 위해 먼저 NaN과 일반 숫자 값
MongoDB 명령 프롬프트(mongo 셸)에서 변수를 출력하는 것은 매우 간단합니다. 변수 이름을 그대로 입력하거나 print() 함수를 사용하면 됩니다. 아래에서 기본 문법과 실제 예제를 통해 자세히 알아보겠습니다.기본 문법변수를 선언하고 초기화한 뒤, 다음 두 가지 방법 중 하나로 값을 출력할 수 있습니다.// 변수 선언 및 초기화 var anyVariableName = yourValue; // 방법 1: 변수 이름만 입력 yourVariableName; // 방법 2: print() 함수 사용 print(anyVariab
MongoDB에서 상위 N개 행 조회하기MongoDB에서 상위 N개의 행(문서)을 조회하려면 애그리게이션 프레임워크(aggregate framework)를 사용하는 것이 가장 효과적입니다. 이 글에서는 예제 컬렉션을 생성하고, $sort, $limit, $match 파이프라인 단계를 조합하여 원하는 결과를 얻는 과정을 단계별로 살펴봅니다.1. 샘플 컬렉션 생성먼저 학생 이름(StudentName)과 점수(Score)를 담은 문서들로 컬렉션을 생성합니다.> db.topNRowsDemo.insertOne({"Student
MongoDB에서 숫자 필드의 절댓값(absolute value)을 구해야 할 때는 집계 프레임워크(Aggregation Framework)의 $abs 연산자를 사용하면 됩니다. 이 글에서는 실제 예제를 통해 컬렉션 생성부터 $abs 연산자를 활용한 절댓값 조회까지 단계별로 살펴보겠습니다.1. 테스트용 컬렉션 생성 및 문서 삽입먼저 예제에 사용할 컬렉션을 만들고 문서를 삽입합니다. 양수, 음수, 0 등 다양한 값을 포함시켰습니다.> db.absoluteValueDemo.insert({Value:98}); WriteResult(
MongoDB 중첩 배열에서 값 찾기 및 수정하기MongoDB에서 문서 내부에 포함된 중첩 배열(nested array)의 특정 값을 찾아 수정하려면 update 명령어와 함께 $elemMatch 연산자 및 위치 연산자($)를 사용하면 됩니다.이 글에서는 실제 예제를 통해 중첩 배열 안에 있는 필드 값을 조회하고 변경하는 전체 과정을 단계별로 살펴보겠습니다.1단계: 테스트용 컬렉션 생성먼저 회사 정보와 개발 프로젝트 목록(중첩 배열)을 포함하는 컬렉션을 생성합니다.> db.findAndModifyAValueInNestedArr
MongoDB에서 배열에 저장된 문자열 값들을 대상으로 정규식(regexp) 일치 검색을 수행해야 하는 경우가 자주 있습니다. 예를 들어, 학생 이름 목록이 배열 형태로 저장되어 있고 특정 문자로 시작하는 이름이 포함된 문서만 조회하고 싶다면 정규식 패턴을 활용하면 됩니다.기본 문법배열 필드를 정규식으로 쿼리할 때는 다음과 같은 문법을 사용합니다.db.yourCollectionName.find( { yourFieldName: /yourStartingValue./ } ).pretty();배열 필드에 정규식 조건을 직접 지정하면, Mo
MongoDB에서 이름에 공백이 있는 키 조회하기MongoDB에서 필드 이름에 공백이 포함된 키를 쿼리하려면 점(.) 표기법을 사용하면 됩니다. 키 이름에 공백이 있어도 점 표기법과 따옴표를 조합하면 별도의 처리 없이 간단하게 데이터를 조회할 수 있습니다.아래에서 단계별로 살펴보겠습니다.1단계: 이름에 공백이 포함된 키를 가진 객체 생성먼저 키 이름에 공백이 들어간 객체를 생성합니다. 다음 쿼리를 실행해 보세요.> myValues[Details] = {}{ }> myValues[Details][Student Name]=J
MongoDB 배열 내부 문서에서 특정 필드만 조회하기배열 안에 포함된 문서에서 특정 필드만 프로젝션(조회)하려면 위치 연산자($)를 사용하면 됩니다. 위치 연산자는 쿼리 조건과 일치하는 배열 요소의 인덱스를 자동으로 참조하여, 일치하는 해당 요소만 결과로 반환해 주기 때문에 배열 전체를 가져오지 않고도 원하는 데이터만 효율적으로 추출할 수 있습니다.1. 예제 컬렉션 생성먼저 실습에 사용할 컬렉션을 생성하고 문서를 삽입해 보겠습니다.> db.projectSpecificFieldDemo.insertOne( ... { ... &n
SQL에서 자주 사용하는 WHERE IN(1,2,...) 조건은 MongoDB에서 $in 연산자로 동일하게 구현할 수 있습니다. $in 연산자는 필드 값이 지정한 배열 내 값 중 하나와 일치하는 문서만 조회하고 싶을 때 매우 유용합니다.$in 연산자 기본 문법$in 연산자의 기본적인 사용 형식은 다음과 같습니다.db.yourCollectionName.find({yourFieldName:{$in:[yourValue1,yourValue2,....N]}}).pretty();배열 안에 조회하고 싶은 값을 나열하기만 하면 되므로, SQL의
MongoDB는 관계형 데이터베이스와 달리 스키마가 고정되어 있지 않기 때문에, 저장된 데이터의 필드(열) 이름도 언제든지 변경할 수 있습니다. 이때 사용하는 것이 바로 $rename 연산자입니다.$rename 연산자 기본 문법컬렉션 내 필드 이름을 변경하려면 다음과 같은 형식으로 쿼리를 작성합니다.db.yourCollectionName.update({}, {$rename: {yourOldColumName: yourNewColumnName}}, false, true);여기서 마지막 두 인자인 false와 true는 각각 upsert
MongoDB 셸 스크립트를 실행 중간에 종료하고 싶다면 quit 함수를 사용하면 됩니다. 이 함수는 현재 셸 세션을 즉시 종료하는 역할을 하며, 선택적으로 종료 코드(exit code)를 인자로 전달할 수도 있습니다.quit() 기본 문법quit() quit(1)인자 없이 quit()를 호출하면 정상 종료로 처리되며, quit(1)처럼 숫자를 전달하면 해당 종료 코드와 함께 셸이 종료됩니다. 셸 스크립트 작성 시 오류 발생 여부를 외부 프로세스에 알리는 용도로 유용하게 활용할 수 있습니다.예제 데이터 준비실제 동작을 확인하기 위해
대규모 MongoDB 컬렉션의 모든 문서에 새로운 속성(필드)을 추가해야 하는 경우가 종종 있습니다. 이럴 때 update 명령어와 forEach() 메서드를 함께 사용하면 컬렉션을 순회하며 각 문서를 효율적으로 업데이트할 수 있습니다. 이 글에서는 실제 예제를 통해 단계별로 과정을 살펴보겠습니다.1. 샘플 컬렉션 생성하기먼저 예제로 사용할 컬렉션을 생성하고 문서를 삽입합니다.> db.addingNewPropertyDemo.insertOne({StudentName:John,StudentAge:23,CountryName:US})