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

MongoDB

  1. RDBMS와 MongoDB의 차이점 완벽 비교: 어떤 데이터베이스를 선택해야 할까?

    RDBMS란 무엇인가?RDBMS(Relational Database Management System, 관계형 데이터베이스 관리 시스템)는 데이터를 엔티티 단위의 테이블 형태로 저장하는 전통적인 데이터베이스입니다. 여러 계층으로 구성된 강력한 정보 보안 기능을 제공하며, 각 테이블에는 레코드를 고유하게 식별하는 기본 키(Primary Key)와 두 테이블 간의 관계를 정의하는 외래 키(Foreign Key)를 설정할 수 있습니다.RDBMS는 표준 질의 언어인 SQL을 사용하여 데이터베이스에 접근하고 조작하며, 대표적인 제품으로는 Or

  2. CentOS 7에 MongoDB 설치하고 설정하는 완벽 가이드

    MongoDB는 오픈소스 기반의 무료 NoSQL 데이터베이스입니다. 문서 지향(document-oriented) 방식으로 동작하며, JSON과 구조가 유사한 BSON 형식으로 데이터를 저장합니다. 높은 가용성과 우수한 성능, 자동 확장성을 갖추고 있어 다양한 개발 환경에서 널리 사용되고 있습니다.기존 RDBMS와 달리 MongoDB는 데이터를 저장하기 위해 사전에 정의된 스키마가 필요 없습니다. 덕분에 기존 데이터나 스키마에 영향을 주지 않고도 언제든지 구조를 유연하게 변경할 수 있다는 큰 장점이 있습니다.사전 준비 사항CentOS

  3. Ubuntu 16.04에 MongoDB 설치 및 부팅 시 자동 시작 설정하는 방법

    MongoDB는 높은 성능, 높은 가용성, 손쉬운 확장성을 제공하는 크로스 플랫폼 기반의 문서 지향(document-oriented) 데이터베이스입니다. MongoDB는 컬렉션(collection)과 도큐먼트(document)라는 개념을 바탕으로 작동하며, 유연한 데이터 구조 덕분에 다양한 애플리케이션에서 널리 활용되고 있습니다. 이 글에서는 Ubuntu 16.04 환경에 MongoDB를 설치하고, 시스템 부팅 시 MongoDB 서비스가 자동으로 시작되도록 설정하는 전체 과정을 단계별로 안내해 드립니다. 1. MongoDB 저장소

  4. Ubuntu 16.04에서 MongoDB 보안 설정하기: 인증 활성화와 관리자 계정 추가

    이 글에서는 Ubuntu 16.04 환경에서 MongoDB를 안전하게 보호하는 방법을 단계별로 살펴봅니다. 과거 버전의 MongoDB는 기본적으로 인증 기능이 비활성화되어 있어 자동화된 공격(exploit)에 매우 취약했습니다. 누구나 데이터베이스에 접속해 내용을 생성·조회·수정·삭제할 수 있었던 원인은 MongoDB 데몬이 기본 설정상 모든 네트워크 인터페이스에서 연결을 수신하도록 되어 있기 때문입니다. 인증 활성화 및 관리자 사용자 추가 다행히 MongoDB 3.x 버전부터는 이러한 문제가 상당 부분 개선되었습니다. 하지만 여

  5. MongoDB 컬렉션 필드 이름 변경($rename) 리매핑 방법

    MongoDB 컬렉션의 필드 이름을 변경하거나 다시 매핑(re-mapping)해야 하는 경우가 종종 있습니다. 예를 들어 기존 스키마 설계를 수정하거나 필드명을 더 직관적으로 바꾸고 싶을 때가 그렇습니다. 이럴 때 update() 메서드와 $rename 연산자를 함께 사용하면 간단하게 해결할 수 있습니다.1. 테스트용 컬렉션 생성하기먼저 insertOne() 메서드를 사용하여 문서가 포함된 컬렉션을 생성합니다.> db.demo171.insertOne({ Name: Chris, Details: { SubjectName: MySQ

  6. MongoDB 컬렉션에서 소문자 값 검색하기 – toLowerCase() 메서드 활용법

    MongoDB에서 특정 값을 소문자로 검색하려면 JavaScript의 toLowerCase() 메서드를 활용하면 됩니다. 이 메서드를 find() 쿼리 안에 함께 사용하면, 대소문자 구분 없이 원하는 형태의 문자열 값을 손쉽게 조회할 수 있습니다.1. 테스트용 컬렉션 생성 및 문서 삽입먼저 예제 실습을 위해 컬렉션을 만들고 문서를 삽입해 보겠습니다. 아래 명령어는 demo172라는 컬렉션에 과목명(SubjectName)이 각각 다른 대소문자 조합으로 저장된 문서들을 추가합니다.> db.demo172.insertOne({Subj

  7. MongoDB에서 $slice 연산자로 필드의 배열 값 개수 제한하기

    MongoDB에서 배열 필드에 저장된 값의 개수를 제한하고 싶다면 $slice 프로젝션 연산자를 사용하면 됩니다. $slice는 쿼리 결과에서 배열 필드의 일부 요소만 반환하도록 지정할 수 있어, 대용량 배열 데이터 중 필요한 부분만 효율적으로 조회할 때 유용합니다.예제 컬렉션 생성하기먼저 데모용 컬렉션을 만들고 문서를 하나 삽입해 보겠습니다.> db.demo173.insertOne({ListOfValues:[10,40,100,560,700,900]}); { acknowledged : true, insertedId

  8. MongoDB에서 $or 연산자로 컬렉션 내 하나 이상의 값 평가하기

    MongoDB에서 하나 이상의 조건을 동시에 평가해야 할 때는 find() 메서드와 함께 $or 연산자를 사용하면 됩니다. $or 연산자는 배열 형태로 전달된 여러 조건 중 하나라도 만족하는 문서를 모두 반환합니다.1. 샘플 컬렉션 생성먼저 문서가 포함된 컬렉션을 생성해 보겠습니다.> db.demo174.insertOne({StudentName:Chris,CountryName:US}); { acknowledged : true, insertedId : ObjectId(5e383c709e4f06af551997e5) }

  9. MongoDB에서 $regex에 필드 값을 패턴으로 사용하는 방법 ($indexOfCP 활용)

    MongoDB에서 필드 값을 패턴으로 사용할 수 있을까요?네, 가능합니다. 다만 일반적인 $regex 연산자로는 다른 필드의 값을 패턴으로 직접 지정할 수 없습니다. 대신 $indexOfCP 연산자를 애그리게이션 프레임워크(aggregate framework)와 함께 활용하면 원하는 결과를 얻을 수 있습니다.$indexOfCP는 특정 문자열 안에서 찾고자 하는 문자열이 처음 나타나는 위치(코드 포인트 기준)를 반환하고, 문자열을 찾지 못하면 -1을 반환합니다. 이 특성을 이용하면 한 필드의 값이 다른 필드 값에 포함되어 있는지 손쉽

  10. MongoDB에서 배열 필드 값을 교체하는 방법 ($ 위치 연산자 활용)

    MongoDB에서 배열 내부의 특정 요소를 다른 값으로 바꾸고 싶다면 위치 연산자(position operator)인 $를 사용하면 됩니다. 이 연산자는 쿼리 조건과 일치하는 배열 요소를 자동으로 가리켜 주기 때문에, 인덱스 번호를 직접 지정하지 않아도 원하는 위치의 값을 손쉽게 수정할 수 있습니다.1. 샘플 컬렉션 생성하기먼저 문서가 포함된 컬렉션을 하나 생성해 보겠습니다.> db.replaceAnArrayFieldValueDemo.insertOne({StudentTechnicalSubjects:[MySQL,SQL Serve

  11. MongoDB에서 점(.) 표기법으로 중첩 문자열 배열 쿼리하는 방법

    MongoDB에서 중첩된 문자열 배열을 조회하려면 점(.) 표기법(dot notation)을 사용하면 됩니다. 이번 글에서는 실제 예제를 통해 문서를 생성하고, 점 표기법으로 중첩 배열 내부의 값을 쿼리하는 방법을 단계별로 살펴보겠습니다.1. 샘플 컬렉션 생성하기먼저 insertOne() 메서드를 사용해 고객 정보를 담은 문서 두 개를 nestedStringDemo 컬렉션에 삽입합니다.> db.nestedStringDemo.insertOne( { CustomerName: John, Custome

  12. MongoDB 집계 프레임워크로 내장된 객체를 문서로 조회하는 방법

    MongoDB에서 문서 안에 포함된(내장된) 객체를 마치 독립적인 문서처럼 조회하고 싶다면, 집계 프레임워크의 $replaceRoot 단계를 활용하면 됩니다. $replaceRoot는 지정한 필드를 새로운 루트(newRoot)로 승격시켜 주기 때문에, 중첩되어 있던 객체를 최상위 문서 형태로 손쉽게 변환할 수 있습니다.1. 샘플 컬렉션 생성하기먼저 예제에 사용할 컬렉션을 만들고 문서를 삽입해 보겠습니다. 각 문서에는 사용자 정보를 담은 UserDetails라는 내장 객체가 들어 있습니다.> db.embeddedObjectDem

  13. MongoDB에서 쿼리를 동적으로 생성하는 방법 완벽 가이드

    MongoDB에서는 검색 조건이 상황에 따라 달라지는 경우가 많습니다. 이럴 때 쿼리를 고정된 형태로 작성하는 대신 동적으로 생성하면 훨씬 유연하게 데이터를 조회할 수 있습니다. 이 글에서는 JavaScript 함수를 활용해 MongoDB 쿼리를 동적으로 빌드하는 방법을 단계별로 살펴보겠습니다.1. 샘플 컬렉션 생성하기먼저 실습에 사용할 문서(document)들을 포함한 컬렉션을 생성합니다. insertOne() 메서드를 사용해 세 개의 문서를 삽입해 보겠습니다.> db.dynamicQueryDemo.insertOne({Nam

  14. MongoDB 중첩 배열에서 특정 요소를 추출하는 방법 – $elemMatch 연산자 완벽 가이드

    MongoDB 중첩 배열에서 특정 요소 추출하기MongoDB에서 중첩된 배열 구조 안에 있는 특정 요소를 추출하려면 $elemMatch 연산자를 사용하면 됩니다. $elemMatch는 배열 내에서 지정한 조건과 일치하는 요소만 매칭해 주는 강력한 쿼리 연산자로, 여러 단계로 중첩된 배열을 다룰 때 특히 유용합니다.이 글에서는 실제 예제를 통해 중첩 배열에서 원하는 데이터를 조회하는 방법을 단계별로 살펴보겠습니다.1. 샘플 컬렉션 생성하기먼저 테스트용 컬렉션을 만들고 문서를 삽입합니다. 아래 예제는 그룹 정보, 사용자 상세 정보, 친

  15. MongoDB에서 $addToSet 연산자로 중복 없이 배열 값을 표시하는 방법

    MongoDB에서 $addToSet 연산자를 사용하면 집합(set)에 중복된 항목이 추가되지 않도록 보장할 수 있습니다. 이 연산자는 기존에 동일한 값이 이미 존재하는 경우 새 값을 추가하지 않으므로, 고유한 값만 유지하고 싶은 배열 필드를 다룰 때 매우 유용합니다.먼저 예제에 사용할 문서가 포함된 컬렉션을 생성해 보겠습니다.1. 샘플 컬렉션 생성하기> db.getDistinctDemo.insertOne({Values:[100,200]}); { acknowledged : true, insertedId : Obje

  16. MongoDB에서 모든 항목을 조회하는 방법 – find() 메서드 활용 가이드

    MongoDB에서 컬렉션에 저장된 모든 항목(문서)을 조회하려면 find() 메서드를 사용하면 됩니다. 이 글에서는 실제 예제를 통해 문서 삽입부터 전체 조회, 그리고 특정 필드만 선택적으로 가져오는 방법까지 단계별로 살펴보겠습니다.1. 테스트용 컬렉션 생성하기먼저 insertOne() 메서드를 사용해 문서가 포함된 컬렉션을 생성합니다.> db.queryAllItemsDemo.insertOne({StudentDetails:{StudentName:John,StudentSubject:[MongoDB,MySQL],StudentSub

  17. MongoDB에서 문자열로부터 고유한 첫 번째 단어를 추출하는 방법

    MongoDB에서 문자열 필드에 저장된 값들 중 첫 번째 단어만 추출하여 중복 없이(unique) 조회하고 싶다면, distinct() 메서드와 JavaScript의 map(), split() 함수를 조합하면 간단하게 해결할 수 있습니다.1. 샘플 컬렉션 생성하기먼저 실습을 위해 문서가 포함된 컬렉션을 생성해 보겠습니다. 아래 예제에서는 학생 정보와 함께 특징을 설명하는 문장이 담긴 컬렉션을 만듭니다.> db.distinctFirstWordDemo.insertOne(     {  &

  18. MongoDB에서 $eq, $not, $gt 연산자를 조합하여 배열 필드 값 쿼리하는 방법

    MongoDB에서 연산자를 활용한 값 쿼리 방법 이 글에서는 MongoDB에서 $eq, $not, $gt 연산자를 조합하여 배열 필드 안에 있는 특정 값을 조회하는 방법을 단계별로 살펴보겠습니다. 예제를 통해 실제 쿼리 작성법과 실행 결과까지 함께 확인할 수 있습니다. 1단계: 샘플 컬렉션 생성하기 먼저 테스트에 사용할 문서들이 담긴 컬렉션을 생성합니다. 각 문서는 학생 ID(_id)와 여러 개의 점수(Score)를 담고 있는 ScoreDetails 배열로 구성되어 있습니다. > db.queryMongoValueDemo.in

  19. MongoDB 중첩 필드에 인덱스 생성하는 방법

    MongoDB에서 중첩(nested)된 필드에 인덱스를 생성하려면 점(.) 표기법을 사용하면 됩니다. 점 표기법은 상위 필드와 하위 필드를 마침표로 연결하여 내부에 위치한 필드까지 정확하게 지정할 수 있는 방식입니다.1. 샘플 컬렉션 및 문서 생성먼저 중첩된 구조를 가진 문서를 포함하는 컬렉션을 생성해 보겠습니다.> db.createIndexOnNestedFieldDemo.insertOne( {UserDetails:{UserPersonalDetails:{UserFirstName:John,UserLastName:Smith

  20. MongoDB에서 빈 문자열 필드 제거하기 – updateMany()와 $unset 활용법

    MongoDB에서 빈 문자열 필드 제거하기MongoDB 컬렉션에는 값이 빈 문자열("")인 필드가 그대로 남아 있는 경우가 종종 있습니다. 이러한 빈 필드는 데이터 품질을 저하시키고 쿼리 작성 시 혼란을 줄 수 있으므로 적절히 정리해 주는 것이 좋습니다. 이 글에서는 updateMany() 메서드와 $unset 연산자를 사용해 조건에 맞는 모든 문서에서 빈 필드를 한 번에 제거하는 방법을 단계별로 살펴봅니다.1. 예제 컬렉션 생성먼저 빈 문자열 값을 포함한 문서들로 테스트용 컬렉션을 만들어 보겠습니다.> db

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