Computer >> 컴퓨터 >  >> 프로그래밍 >> MongoDB

MongoDB

  1. MongoDB에서 특정 문자로 끝나는 값을 가진 문서를 검색하는 방법

    MongoDB에서 필드 값이 특정 문자로 끝나는 문서를 조회하려면 $regex 연산자와 정규식 앵커인 $(달러 기호)를 함께 사용하면 됩니다. 정규식 맨 끝에 붙는 $는 문자열의 마지막을 의미하기 때문에, 이를 활용하면 원하는 조건에 맞는 문서만 간단하게 필터링할 수 있습니다.기본 문법특정 문자로 끝나는 값을 가진 문서를 조회하는 기본 문법은 다음과 같습니다.db.yourCollectionName.find({yourFieldName: {$regex: yourEndingCharacter$}}).pretty();실습 예제1. 샘플 컬렉

  2. MongoDB에서 $or 연산자가 포함된 쿼리도 인덱스를 사용할 수 있을까요?

    네, 가능합니다. MongoDB에서 $or 연산자가 포함된 쿼리도 각 조건에 해당하는 필드에 인덱스가 미리 생성되어 있다면 인덱스를 활용할 수 있습니다. 핵심은 $or 절 안의 각 필드마다 개별적인 인덱스를 만들어 두는 것입니다.이번 글에서는 실제 예제를 통해 인덱스를 생성하고, explain() 메서드로 실행 계획을 확인하며 인덱스가 실제로 사용되는지 검증해 보겠습니다.1단계: 인덱스 생성하기먼저 $or 조건에서 사용될 첫 번째 필드인 First에 오름차순(1) 인덱스를 생성합니다.> db.indexOrQueryDemo.cr

  3. MongoDB에서 $all 연산자로 배열 요소 순서와 무관하게 정확한 배열 일치 찾기

    MongoDB에서 배열 필드의 정확한 일치(exact match)를 찾고 싶은데, 배열 안 값들의 순서가 달라도 매칭되도록 하려면 어떻게 해야 할까요? 이럴 때 $all 연산자를 사용하면 됩니다. $all은 지정한 모든 값이 배열에 포함되어 있는지만 확인하고 요소의 순서는 고려하지 않습니다. 여기에 $size 연산자를 함께 조합하면 배열의 길이(요소 개수)까지 지정할 수 있어, 사실상 순서에 상관없는 정확한 배열 일치 조건을 완성할 수 있습니다.예제 컬렉션 생성 및 데이터 삽입먼저 실습용 컬렉션을 만들고 문서를 삽입해 보겠습니다.

  4. MongoDB에서 필드 값끼리 비교하는 방법 – $where 연산자 완벽 가이드

    MongoDB에서 필드 값을 비교하는 방법일반적인 MongoDB 쿼리는 필드와 상수 값을 비교하지만, 때로는 같은 문서 내의 두 필드 값을 서로 비교해야 하는 경우가 있습니다. 예를 들어 Value1이 Value2보다 큰 문서만 찾고 싶다와 같은 요구 사항이 있을 수 있습니다.이럴 때 $where 연산자를 사용하면 JavaScript 표현식을 통해 문서 내부의 필드 값들을 자유롭게 비교할 수 있습니다. 이번 글에서는 실제 예제를 통해 $where 연산자의 사용 방법을 단계별로 살펴보겠습니다.1. 샘플 컬렉션 생성 및 문서 삽입먼저

  5. MongoDB 컬렉션에서 특정 문서 하나만 남기고 나머지 모든 문서 삭제하기

    MongoDB에서 컬렉션에 저장된 여러 문서 중 단 하나의 문서만 남기고 나머지를 모두 삭제해야 하는 경우가 종종 있습니다. 이럴 때는 remove() 메서드에 적절한 조건을 지정하여 원하는 문서만 남길 수 있습니다. 이 글에서는 $ne(Not Equal) 연산자를 활용해 특정 문서를 제외한 나머지 문서를 한 번에 삭제하는 방법을 예제와 함께 살펴보겠습니다.1. 테스트용 컬렉션 생성 및 데이터 삽입먼저 실습을 위해 컬렉션을 만들고 문서 세 개를 삽입하겠습니다. 아래 쿼리는 removeAllDocumentsExceptOneDemo라는

  6. MongoDB에서 커서(Cursor)로 컬렉션을 반복 처리하는 방법

    MongoDB에서 find() 메서드는 커서(cursor) 객체를 반환합니다. 이 커서를 활용하면 컬렉션에 저장된 문서들을 하나씩 순회하며 처리할 수 있습니다. 아래는 커서를 사용해 컬렉션을 반복하는 기본 문법입니다.커서로 컬렉션 반복하기 – 기본 문법var anyVariableName1; var anyVariableName2 = db.yourCollectionName.find(); while (yourVariableName2.hasNext()) { yourVariableName1 = yourVariableName2.next

  7. MongoDB에서 컬렉션 이름을 변경하는 방법 – renameCollection() 활용 가이드

    MongoDB를 사용하다 보면 컬렉션(collection)의 이름을 변경해야 하는 경우가 종종 발생합니다. 이럴 때 renameCollection() 메서드를 사용하면 복잡한 데이터 마이그레이션 없이도 손쉽게 컬렉션 이름을 바꿀 수 있습니다. 이 글에서는 실제 예제와 함께 컬렉션 이름을 변경하는 전체 과정을 단계별로 알아보겠습니다.renameCollection() 기본 문법MongoDB에서 컬렉션 이름을 변경하는 기본 문법은 다음과 같습니다.db.yourOldCollectionName.renameCollection(yourNewCo

  8. MongoDB에서 $max 연산자로 조건부 업서트(Upsert) 및 업데이트 수행하는 방법

    MongoDB에서 조건부 업서트(Upsert) 및 업데이트 수행하기MongoDB에서 조건에 따라 문서를 업데이트하거나 업서트(upsert)해야 할 때 $max 연산자를 활용할 수 있습니다. $max는 지정한 값이 현재 필드 값보다 클 경우에만 해당 필드를 갱신하는 연산자로, 최고 점수, 최대값 유지 같은 시나리오에서 매우 유용합니다.이 글에서는 실제 예제를 통해 $max 연산자를 사용한 조건부 업데이트 과정을 단계별로 살펴보겠습니다.1단계: 샘플 컬렉션 생성먼저 테스트에 사용할 문서들을 포함한 컬렉션을 생성합니다.> db.co

  9. MongoDB에서 한 번의 업데이트 호출로 두 개의 개별 배열 업데이트하기 ($push 연산자 활용)

    MongoDB에서 한 번의 update 호출로 문서 내 두 개의 개별 배열을 동시에 업데이트하고 싶다면 $push 연산자를 사용하면 됩니다. 이 글에서는 실제 예제를 통해 그 과정을 단계별로 살펴보겠습니다. 1단계: 샘플 컬렉션 생성하기 먼저 학생 이름과 두 개의 게임 점수 배열(StudentFirstGameScore, StudentSecondGameScore)을 담은 문서 세 개를 삽입하여 컬렉션을 만들어 보겠습니다. >db.twoSeparateArraysDemo.insertOne({"StudentName"

  10. MongoDB에서 $toLower로 컬렉션의 문자열을 소문자로 일괄 변환하는 방법

    MongoDB에는 애그리게이션 프레임워크의 일부로 사용할 수 있는 $toLower 연산자가 있습니다. 하지만 이미 저장된 데이터를 직접 수정해야 할 때는 forEach 루프를 사용하여 특정 필드를 순회하면서 문서를 하나씩 업데이트하는 방식이 유용합니다.이 글에서는 예제 컬렉션을 만든 뒤, JavaScript의 toLowerCase() 함수를 활용해 StudentName 필드의 값을 모두 소문자로 변환하는 전체 과정을 단계별로 살펴보겠습니다.1. 샘플 컬렉션 생성하기먼저 insertOne() 메서드를 사용해 테스트용 컬렉션에 문서를

  11. MongoDB에서 정렬된 데이터로 고유한 값(distinct) 조회하는 방법

    MongoDB에서 특정 필드의 중복을 제거한 고유한 값(distinct)을 추출하면서 동시에 정렬된 결과까지 얻고 싶다면, distinct() 메서드와 자바스크립트 배열의 sort() 메서드를 조합하면 아주 간단하게 해결할 수 있습니다.기본 문법컬렉션에서 고유한 값을 정렬하여 가져오는 쿼리 구문은 다음과 같습니다.db.yourCollectionName.distinct("yourFieldName").sort();distinct() 메서드는 지정한 필드에서 중복을 제거한 값들을 배열 형태로 반환합니다. 이 배열은 일반

  12. MongoDB Aggregation 프레임워크로 두 필드의 값을 합산하는 방법

    MongoDB에서 Aggregation 프레임워크를 사용하면 $project 연산자와 $add 연산자를 조합하여 두 필드의 값을 손쉽게 합산할 수 있습니다. 이 글에서는 실제 예제를 통해 그 과정을 단계별로 살펴보겠습니다.1. 샘플 컬렉션 생성먼저 테스트에 사용할 컬렉션을 만들고 문서를 삽입합니다.> db.sumTwoFieldsDemo.insertOne({FirstValue:150,SecondValue:350}); { acknowledged : true, insertedId : ObjectId(5c9b4bfe15

  13. MongoDB에서 JSON 배열 내 키 값을 업데이트하는 방법 완벽 가이드

    MongoDB에서 배열 형태로 저장된 JSON 데이터의 특정 키 값을 수정해야 하는 경우가 종종 있습니다. 이 글에서는 findOne()으로 문서를 조회한 뒤 forEach()로 배열 요소를 순회하며 값을 변경하고, $set 연산자를 통해 다시 저장하는 방법을 단계별로 살펴봅니다.1단계: 문서가 포함된 컬렉션 생성먼저 학생 정보를 담은 StudentDetails 배열을 포함하는 문서로 컬렉션을 생성해 보겠습니다.> db.updateListOfKeyValuesDemo.insertOne( { "StudentDetails&

  14. MongoDB 셸에서 모든 데이터베이스를 조회하고 조작하는 방법

    MongoDB 셸에서 모든 데이터베이스를 다루는 방법MongoDB 셸(mongo shell)에서 서버에 존재하는 모든 데이터베이스를 한 번에 조회하고 조작하려면 adminCommand() 메서드와 함께 listDatabases 명령을 사용하면 됩니다. 이 조합을 활용하면 현재 MongoDB 인스턴스에 등록된 데이터베이스의 이름, 디스크 사용량, 빈 데이터베이스 여부 등의 정보를 손쉽게 확인할 수 있습니다.아래에서 예시 데이터베이스 test를 기준으로 단계별로 살펴보겠습니다.1단계: 현재 사용 중인 데이터베이스 확인먼저 db 명령을

  15. MongoDB에서 기존 사용자 비밀번호를 변경하는 방법 완벽 가이드

    MongoDB에서 기존 사용자의 비밀번호를 변경하려면 changeUserPassword() 메서드를 사용하면 됩니다. 이 메서드는 사용자 이름과 새 비밀번호 두 개의 인자를 받아 해당 사용자의 비밀번호를 즉시 갱신해 줍니다.changeUserPassword() 기본 문법db.changeUserPassword("기존사용자이름", "새비밀번호");1단계: admin 데이터베이스로 전환먼저 작업 대상 데이터베이스를 admin으로 전환해야 합니다. 다음 명령어를 입력하세요.> use admin명령을

  16. MongoDB $pull 연산자로 배열 내부의 문서를 삭제하는 방법

    MongoDB에서 배열 안에 포함된 문서(하위 도큐먼트)를 삭제하려면 update 명령과 함께 $pull 연산자를 사용해야 합니다. 이 글에서는 실제 예제를 통해 단계별로 삭제 과정을 살펴보겠습니다.1. 샘플 컬렉션 생성먼저 문서가 담긴 컬렉션을 생성합니다. 다음 쿼리를 실행하세요.> db.deleteDocumentsDemo.insertOne( ... { ... _id:100, ... StudentsDetails : [ ... { ... StudentId : 1, ... S

  17. MongoDB 쿼리 결과에서 _id 필드를 제거하는 방법

    MongoDB에서 조회 결과에 항상 함께 출력되는 _id 필드는 기본 키 역할을 하기 때문에 별도 설정 없이는 자동으로 포함됩니다. 하지만 결과에서 _id를 제외하고 싶다면 프로젝션(projection) 옵션에서 해당 필드 값을 0으로 설정하면 됩니다._id 제거 기본 문법db.yourCollectionName.find({},{_id:0});find() 메서드의 두 번째 인자인 프로젝션 객체에 {_id: 0}을 지정하면 조회 결과에서 _id 필드가 제외됩니다.예제 컬렉션 생성하기실제 동작을 확인하기 위해 먼저 문서를 포함하는 컬렉션

  18. MongoDB에서 사용자 정의 _id 값으로 문서가 없을 때만 삽입하는 Upsert 방법

    MongoDB Upsert란 무엇인가?MongoDB에서 Upsert는 Update + Insert의 합성어로, 조건에 맞는 문서가 존재하면 업데이트하고, 존재하지 않으면 새로 삽입하는 동작을 의미합니다. 특히 사용자가 직접 지정한 _id 값을 사용할 때는 중복 키 오류를 주의해야 합니다.기본적으로 insert() 메서드를 사용할 때 이미 동일한 _id 값을 가진 문서가 컬렉션에 존재하면 E11000 duplicate key error가 발생합니다. 아래 예제를 통해 이 동작을 자세히 살펴보겠습니다.1. insert() 사용 시 중복

  19. MongoDB에서 모든 데이터베이스를 반복 처리하는 방법 완벽 가이드

    MongoDB의 모든 데이터베이스 반복 처리하기MongoDB에서 서버에 존재하는 모든 데이터베이스를 조회하거나 반복(iterate) 처리하려면 먼저 admin 데이터베이스로 전환해야 합니다. 그 이유는 listDatabases 명령이 admin 데이터베이스에서만 실행할 수 있기 때문입니다.1단계: admin 데이터베이스로 전환getSiblingDB() 메서드를 사용하면 현재 연결을 유지한 채 다른 데이터베이스로 손쉽게 전환할 수 있습니다. 아래 쿼리는 admin 데이터베이스로 전환한 뒤, 전체 데이터베이스 목록을 가져오는 방법을 보

  20. MongoDB에서 문자열 길이 기준으로 쿼리하는 방법

    MongoDB에는 문자열 길이를 직접 비교하는 전용 연산자가 없습니다. 대신 $regex 연산자와 정규식의 반복 범위 지정자를 활용하면 특정 길이 조건에 맞는 문서를 손쉽게 조회할 수 있습니다.기본 문법길이 조건으로 쿼리할 때 사용하는 기본 문법은 다음과 같습니다.db.yourCollectionName.find({ yourFieldName: { $regex: /^.{yourLengthValue1,yourLengthValue2}$/ } });정규식 패턴의 각 구성 요소는 아래와 같은 의미를 가집니다.^ : 문자열의 시작을 의미합니다.

Total 1351 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:58/68  20-컴퓨터/Page Goto:1 52 53 54 55 56 57 58 59 60 61 62 63 64