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

MongoDB

  1. MongoDB에서 중첩 문서 집계하는 방법 – $unwind와 $group 활용 가이드

    MongoDB에서 중첩 문서 집계하는 방법MongoDB에서 배열 형태로 중첩된 문서(nested documents)의 값을 집계하려면 애그리게이션 파이프라인의 $unwind와 $group 연산자를 조합하여 사용할 수 있습니다. $unwind는 배열 요소를 각각의 개별 문서로 분해해 주고, $group은 분해된 값들을 하나의 기준으로 묶어 최대값($max), 합계($sum), 평균($avg) 같은 통계를 계산합니다.이 글에서는 실제 예제를 통해 중첩 배열 안의 Amount 값을 모두 펼친 뒤 전체 최대값을 구하는 과정을 단계별로 살펴

  2. MongoDB에서 이전 달 데이터 조회하는 방법

    MongoDB에서 이전 달에 해당하는 데이터를 조회하려면 현재 날짜를 구한 뒤 월(month) 값에서 1을 빼는 방식을 사용하면 됩니다. JavaScript Date 객체가 제공하는 setMonth()와 getMonth() 메서드를 활용하면 간단하게 구현할 수 있습니다.1. 샘플 컬렉션 생성하기먼저 예제에 사용할 컬렉션을 만들고 insertOne() 메서드로 문서를 삽입합니다. 고객 이름(CustomerName)과 구매 날짜(PurchaseDate) 필드로 구성된 세 개의 문서를 추가해 보겠습니다.> db.findOneMont

  3. MongoDB Aggregation에서 하위 집합 내부에 조건 적용하기

    MongoDB Aggregation 파이프라인에서 배열(하위 집합) 내부에 조건을 적용하려면 $setIsSubset 연산자를 사용하면 됩니다. 이 연산자는 첫 번째 배열이 두 번째 배열의 부분 집합인지 여부를 판단하여 true 또는 false를 반환합니다.샘플 컬렉션 생성먼저 문서가 포함된 컬렉션을 생성해 보겠습니다.> db.subsetDemo.insertOne({StudentName:Chris,StudentFavouriteSubject:[Java,Python]}); { acknowledged : true, inse

  4. MongoDB에서 중복 없이 문서 삽입하기: 유니크(unique) 인덱스 활용법

    MongoDB에 데이터를 삽입할 때 중복 레코드가 저장되는 것을 방지하려면 유니크(unique) 인덱스를 활용해야 합니다. 컬렉션 생성 시 인덱스 옵션에 unique: true를 설정하면, 해당 필드에 동일한 값이 다시 삽입될 때 데이터베이스가 자동으로 이를 거부합니다.1단계: 유니크 인덱스가 설정된 컬렉션 만들기먼저 createIndex() 메서드를 사용해 StudentFirstName 필드에 유니크 인덱스를 생성합니다. 이때 컬렉션이 존재하지 않으면 자동으로 함께 생성됩니다.> db.insertWithoutDuplicate

  5. MongoDB에서 특정 필드 합산하는 방법 – $sum과 aggregate 완벽 가이드

    MongoDB에서 특정 필드의 값을 합산하려면 aggregate 파이프라인과 함께 $sum 연산자를 사용하면 됩니다. 이 글에서는 실제 예제를 통해 컬렉션을 생성하고, 조건에 맞는 문서만 필터링한 뒤 필드 값을 그룹별로 합산하는 전체 과정을 단계별로 살펴보겠습니다.1. 샘플 컬렉션 생성하기먼저 insertOne() 메서드를 사용해 테스트용 문서들을 삽입합니다.> db.getSumOfFieldsDemo.insertOne({Customer_Id:101,Price:50,Status:Active}); { acknowledged

  6. SQL처럼 MongoDB에서 레코드 존재 여부 확인하기: findOne() 올바른 사용법

    SQL에서는 EXISTS 절을 사용해 레코드의 존재 여부를 확인하지만, MongoDB에는 이에 해당하는 전용 연산자가 없습니다. 대신 findOne() 메서드를 활용하면 동일한 목적을 달성할 수 있습니다. 이 글에서는 실제 예제를 통해 그 사용법을 살펴보겠습니다.테스트용 컬렉션 생성하기먼저 문서가 담긴 컬렉션을 생성합니다. 아래 예제에서는 학생 정보를 저장하는 existsAlternateDemo 컬렉션을 만들어 보겠습니다.> db.existsAlternateDemo.insertOne({StudentName:Chris}); {

  7. MongoDB 집계 파이프라인으로 동일한 ID를 가진 제품 가격 합산하기

    MongoDB에서 동일한 제품 ID를 가진 문서들의 가격을 하나로 합산하려면 $group 단계를 사용해야 합니다. $group은 지정된 _id 표현식을 기준으로 문서들을 그룹화하고, $sum 같은 누적 연산자와 함께 사용하면 각 그룹별 합계를 손쉽게 계산할 수 있습니다.1. 샘플 컬렉션 생성먼저 실습에 사용할 컬렉션과 문서를 생성해 보겠습니다.> db.aggreagateDemo.insertOne({Product_Id:1,ProductPrice:50}); { acknowledged : true, insertedId :

  8. MongoDB에서 문서 배열을 병합하는 방법 – aggregate()와 $push 활용 가이드

    MongoDB에서 여러 문서에 저장된 배열을 하나로 병합하려면 aggregate() 메서드와 $push 연산자를 함께 사용하면 됩니다. 이 글에서는 실제 예제를 통해 배열을 병합하는 과정을 단계별로 살펴보겠습니다. 1. 컬렉션 생성 및 문서 삽입 먼저 insertOne() 메서드를 사용하여 컬렉션을 생성하고 문서를 삽입해 보겠습니다. > db.demo64.insertOne({Subjects:[MySQL,MongoDB,Java]}); { acknowledged : true, insertedId : ObjectId

  9. MongoDB에서 정렬을 활용해 문서별 평균값 계산하는 방법

    MongoDB에서 정렬을 활용해 문서별 평균값 계산하기MongoDB에서 각 문서의 배열 필드에 담긴 값들의 평균을 구하려면 aggregate 집계 파이프라인과 $avg 연산자를 함께 사용하면 됩니다. 여기에 $addFields 스테이지로 계산된 평균값을 새 필드로 추가한 뒤, $sort 스테이지를 이용해 원하는 기준으로 정렬할 수 있습니다.먼저 예제에 사용할 컬렉션을 생성하고 문서를 삽입해 보겠습니다.> db.calculateAverage.insertOne({Value:[10,20,80]});{   ackno

  10. MongoDB Robomongo 'collation is not a function' 오류 해결 방법

    MongoDB Robomongo에서 collation이 함수로 인식되지 않는 이유db.data.find(…).collation is not a function 오류가 발생하는 가장 일반적인 원인은 collation 기능이 MongoDB 3.4 버전부터 도입되었기 때문입니다. 즉, 사용 중인 MongoDB가 3.4 미만의 구버전이라면 collation 메서드를 호출할 수 없어 위와 같은 오류가 나타납니다.이 글에서는 MongoDB 4.0.5 버전을 기준으로 설명합니다. 먼저 시스템에 설치된 현재 MongoDB 버전을 확인하는 방법부터

  11. MongoDB에서 백그라운드로 인덱스 생성하는 방법

    MongoDB에서 인덱스를 생성할 때 데이터베이스 작업이 블로킹되지 않도록 하려면 createIndex() 메서드에 background: true 옵션을 설정하면 됩니다. 이렇게 하면 인덱스 빌드가 백그라운드에서 진행되는 동안에도 컬렉션에 대한 읽기 및 쓰기 작업을 계속 수행할 수 있습니다.백그라운드 인덱스 생성 문법아래와 같은 기본 문법을 사용하여 백그라운드에서 인덱스를 생성할 수 있습니다.db.yourCollectionName.createIndex({yourFieldName1:1,yourFieldName2:1},{backgrou

  12. MongoDB에서 두 날짜 사이의 필드 개수 세기와 합계 구하는 방법

    MongoDB에서 특정 기간(두 날짜 사이)에 속한 문서의 개수를 세거나 특정 필드의 합계를 구하려면 애그리게이션(aggregation) 파이프라인을 활용하면 됩니다. $match 단계에서 비교 연산자인 $gte(이상)와 $lte(이하)로 날짜 범위를 지정하고, $group 단계에서 $sum을 사용해 합계와 개수를 한 번에 계산할 수 있습니다.1. 샘플 컬렉션 생성하기먼저 예제로 사용할 컬렉션에 문서를 삽입해 보겠습니다.> db.countandsumdemo.insertOne({Value:10,created_at:ISODate(

  13. MongoDB 집계 파이프라인에서 $literal로 값을 문자열 리터럴로 교체하는 방법

    MongoDB의 $literal 연산자를 사용하면 집계(aggregation) 작업 중에 특정 필드의 값을 고정된 문자열 리터럴로 교체할 수 있습니다. 일반적으로 집계 표현식에서 문자열은 필드 경로로 해석되지만, $literal을 사용하면 입력한 값 그대로 상수로 처리됩니다.1. 샘플 컬렉션 생성먼저 문서가 포함된 컬렉션을 생성해 보겠습니다.> db.replacevaluedemo.insertOne({StudentName:Chris,StudentFavouriteSubject:{TeacherName:Bob,SubjectCode:M

  14. MongoDB에서 점(.) 표기법으로 중첩 배열의 특정 요소 추출하기

    MongoDB 중첩 배열에서 특정 요소 추출하기MongoDB에서는 점(.) 표기법(dot notation)을 사용하면 여러 겹으로 중첩된 배열 안에서도 원하는 특정 요소를 손쉽게 추출할 수 있습니다. 이 글에서는 실제 예제를 통해 그 과정을 단계별로 살펴보겠습니다.1단계: 샘플 컬렉션 생성먼저 insertOne() 메서드를 사용해 문서가 포함된 컬렉션을 생성합니다.> db.extractParticularElementDemo.insertOne(... {... _id : 101,... StudentNam

  15. MongoDB에서 레코드 조회가 느린 이유와 인덱스로 해결하는 방법

    MongoDB에서 레코드 조회가 느린 이유는?MongoDB에서 특정 레코드를 찾는 데 시간이 너무 오래 걸린다면, 대부분의 원인은 인덱스(index)가 없기 때문입니다. 인덱스가 없는 컬렉션에서 쿼리를 실행하면 MongoDB는 조건에 맞는 문서를 찾기 위해 컬렉션의 모든 문서를 처음부터 끝까지 하나씩 확인하는 컬렉션 스캔(Collection Scan)을 수행합니다. 데이터가 수백만 건이라면 이 과정은 매우 비효율적이며 응답 시간이 크게 늘어납니다.이 문제를 해결하는 핵심 방법은 자주 검색하는 필드에 인덱스를 생성하는 것입니다. 인덱

  16. MongoDB에서 새 컬렉션으로 행(문서) 복사하는 방법 – aggregate와 $out 활용 가이드

    MongoDB에서 새 컬렉션으로 행(문서) 복사하는 방법 MongoDB에서 한 컬렉션의 행(문서)을 다른 컬렉션으로 복사하려면 aggregate() 메서드에 $sample과 $out 파이프라인 단계를 조합하면 됩니다. $sample이 지정한 개수만큼 문서를 선택하고, $out이 그 결과를 지정한 새 컬렉션에 저장합니다. 기본 문법 db.yourOldCollectionName.aggregate([{ $sample: { size: 333333 }}, {$out: yourNewCollectionName} ],{allowDiskUse: t

  17. MongoDB에서 find()와 pretty()로 다양한 형식의 특정 데이터 조회하는 방법

    MongoDB에서 조건에 맞는 특정 데이터를 조회하려면 find() 메서드를 사용하면 됩니다. 조회 결과를 보기 좋게 정렬된 형식으로 출력하고 싶다면 pretty() 메서드를 함께 활용하세요. 이번 글에서는 실제 예제를 통해 중첩된 필드의 데이터를 다양한 형식으로 가져오는 방법을 단계별로 살펴보겠습니다.1. 샘플 컬렉션 생성하기먼저 insertOne() 메서드를 사용해 학생 정보가 담긴 문서들을 컬렉션에 삽입합니다. 아래 예제에서는 학생 이름(StudentName)과 함께 부모님 이름(FatherName), 국가(CountryNam

  18. MongoDB에서 값이 배열에 포함되어 있는지 확인하는 쿼리 방법

    MongoDB $in 연산자로 배열 내 특정 값 확인하기MongoDB에서 특정 값이 배열 필드에 포함되어 있는지 확인하려면 $in 연산자를 사용하면 됩니다. 이 연산자는 지정한 값 중 하나라도 배열 안에 존재하는 문서를 손쉽게 조회할 수 있게 해줍니다.1. 샘플 컬렉션 생성먼저 테스트에 사용할 문서들이 담긴 컬렉션을 생성해 보겠습니다.> db.testInArray.insertOne({ListOfNumbers:[10,56,78,90,32]});{   acknowledged : true,   i

  19. MongoDB에서 조건에 일치하는 레코드 개수 세기 – count() 메서드 활용 가이드

    MongoDB에서 특정 조건과 일치하는 레코드의 개수를 확인하려면 count() 메서드를 사용하면 됩니다. 이 글에서는 실제 예제를 통해 컬렉션을 만들고, 조건에 맞는 문서의 개수를 집계하는 방법을 단계별로 살펴보겠습니다.1. 샘플 컬렉션 생성하기먼저 insertOne() 메서드를 사용해 demo205 컬렉션에 문서를 세 개 삽입합니다. 여기서는 Name과 Age가 빈 문자열이고 isActive가 false인 문서 두 개, 그리고 값이 채워져 있고 isActive가 true인 문서 하나를 준비했습니다.> db.demo205.i

  20. MongoDB에서 특정 값이 존재하지 않는 문서 조회하기 – $ne 연산자 완벽 가이드

    MongoDB에서 특정 값이 존재하지 않는지 확인하는 방법MongoDB에서 특정 값이 존재하지 않거나 일치하지 않는 문서를 조회하려면 $ne(not equal) 연산자를 사용하면 됩니다. $ne 연산자는 지정한 값과 다른 값을 가진 모든 문서를 반환하며, 해당 필드 자체가 없는 문서도 함께 포함한다는 점이 특징입니다.이번 글에서는 실제 예제를 통해 $ne 연산자의 사용법을 단계별로 살펴보겠습니다.1단계: 컬렉션 생성 및 문서 삽입먼저 예제에 사용할 demo206 컬렉션을 생성하고 클라이언트 정보가 담긴 문서들을 삽입합니다.>

Total 1351 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:38/68  20-컴퓨터/Page Goto:1 32 33 34 35 36 37 38 39 40 41 42 43 44