MongoDB의 CRUD 작업: 예제가 포함된 자습서

게시 됨: 2020-02-05

웹의 지속적인 진화와 함께 우리는 이제 MongoDB 및 기타 문서 객체 데이터베이스가 기존 SQL 기반 데이터베이스의 대안으로 어떻게 등장하는지 보고 있습니다. 이러한 문서 개체 데이터베이스에는 SQL 데이터베이스에 비해 몇 가지 장점이 있으며 이러한 모든 장점 중 가장 두드러진 장점은 확장성과 민첩성입니다.

MongoDB의 데이터는 이진 인코딩 JSON(BSON) 문서 형식으로 저장된다는 점에 유의해야 합니다. 이 형식에는 포함된 문서의 배열을 보유하거나 해당 값에 대한 요구 사항이 있을 수 있습니다. 문서는 값과 필드 쌍으로 구성된 구조인 MongoDB에서 레코드를 형성합니다.

이제 MongoDB에서 생성, 업데이트, 검색 및 삭제 작업 또는 CRUD 작업에 대해 논의해 보겠습니다. 이러한 기능은 크게 MongoDB에서 데이터 수정 기능으로 분류할 수 있습니다. 단일 컬렉션에만 사용할 수 있습니다. 삽입은 데이터베이스에 데이터를 추가하는 데 사용할 수 있는 MongoDB의 기능입니다.

목차

MongoDB의 CRUD 작업 목록

1. 문서 작성

MongoDB를 사용하여 객체를 생성하는 방법은 무엇입니까? MongoDB는 저장을 위해 JSON의 바이너리 표현인 BSON을 사용합니다. 따라서 데이터베이스에서 다른 작업을 수행하는 데 사용되는 메서드가 JavaScript와 관련이 있다는 것을 이해하는 것은 매우 쉽습니다. 사용자와 사용자의 컬렉션을 생성해 보겠습니다. SQL의 테이블은 MongoDB의 컬렉션과 동일하다는 점도 중요합니다.
db.users.save({이름:"마이크", 직업:"의사", 이메일:"이름@sample.com"})
이 예제는 데이터를 컬렉션에 저장하기 위해 MongoDB save()를 사용합니다.

2. 문서 삽입

  • 일괄 삽입 : 이 기능을 사용하면 데이터베이스에 문서 목록을 동시에 추가할 수 있습니다. 특정 시점의 배치에는 수백 또는 수천 개의 문서가 포함될 수 있습니다. 여러 문서를 삽입할 수 있는 이 기능은 다른 삽입 기능보다 훨씬 빠르게 작동합니다. 일괄 삽입에서는 수백 또는 수천 개의 문서에 대한 개별 요청을 제기할 필요가 없습니다. 대신 하나의 TCP(전송 제어 프로토콜) 요청으로 작동합니다. 헤더 처리 활동이 없기 때문에 삽입하는 동안 소요되는 시간은 항상 훨씬 적습니다. 삽입해야 하는 모든 문서에는 수행해야 하는 작업을 데이터베이스에 전달하는 헤더가 있습니다. 대부분 일괄 삽입은 센서 데이터와 서버 로그를 보관하는 데 사용됩니다.
  • Mongoimport : Mongoimport는 MySQL, Oracle 또는 기타 RDBMS(관계형 데이터베이스 관리 시스템)의 필수 데이터에 대한 일괄 삽입 대신 사용되는 명령줄 도구입니다. 문서를 MongoDB에 저장하기 전에 사용자 지정 ID를 추가하여 변경해야 하는 경우가 있습니다. 알아야 할 또 다른 중요한 사실은 MongoDB는 16MB의 무거운 메시지만 수락한다는 것입니다. 따라서 일괄 삽입은 가질 수 있는 메시지 수에 제한을 둡니다.
  • 순서 없는 대량 삽입 : 이 함수에서 MongoDB는 순서를 따르지 않고 작업을 씁니다. 오류가 발생하는 경우 중단 없이 남아 있는 쓰기 작업을 계속합니다. MongoDB는 작업을 수행하는 동안 순서가 지정되지 않은 작업 그룹을 형성합니다. MongoDB는 실행 전에 나열된 작업을 재정렬하여 성능 향상을 추구할 수도 있습니다. 따라서 응용 프로그램은 대량 삽입을 위해 이 기능을 고려할 때 시퀀스에 의존할 필요가 없습니다. Bulk.getOperations()를 사용하여 MongoDB가 일련의 작업을 그룹화한 다음 실행하는 방법을 확인할 수 있습니다. 이 명령은 순서 없이 동시에 세 개의 문서를 추가하는 데 사용할 수 있습니다.
  • 정렬된 대량 삽입: 이 함수에서 MongoDB는 작업을 작성할 때 순서를 따릅니다. 쓰기 작업 중 오류가 발생하면 MongoDB가 다른 쓰기 작업을 수행하지 않습니다. 순서가 지정된 작업은 연속성과 유형을 고려하여 그룹화됩니다. 동일한 클래스에 속하는 인접 순서 작업은 그룹화됩니다.

를 들어 순서가 지정된 목록에 하나의 삽입 작업과 삭제 작업, 두 번의 업데이트 작업이 있는 경우 MongoDB는 이를 쌓기 위해 세 개의 그룹을 생성합니다. 그룹 1은 하나의 삽입 작업으로 구성됩니다. 두 번째 그룹에는 하나의 삭제 작업이 있습니다. 세 번째 그룹은 두 가지 업데이트 작업을 함께 합니다.

MongoDB의 향후 버전은 이 동작을 적절하게 처리할 것으로 예상됩니다. 정렬된 대량 목록의 각 그룹은 1000개 이상의 작업을 가질 수 없습니다. 수가 최대 제한을 초과하는 경우 MongoDB는 이 제한을 준수하기 위해 1000개 이하의 작업으로 구성된 더 작은 그룹을 만듭니다. 따라서 7000개의 주문된 대량 작업이 있는 경우 각각 1000개의 대량 작업으로 구성된 7개의 그룹이 있습니다. 그룹화 및 실행이 어떻게 수행되는지 보려면 먼저 대량 삽입 명령을 실행한 다음 Bulk.getOperations 명령을 사용하십시오. 이 명령을 사용하여 세 개의 문서를 순서대로 추가할 수 있습니다.

3. 문서 검색/읽기

MongoDB의 모든 쿼리는 특정 문서를 대상으로 합니다. MongoDB는 쿼리에 정의된 조건을 기반으로 문서를 식별한 다음 해당 문서를 의도한 대상으로 반환합니다. 문서 검색 쿼리에는 반환해야 하는 문서의 필드와 일치하는 조건이나 기준을 언급하는 프로젝션이 있을 수 있습니다.

건너뛰기, 제한 및 정렬 순서를 지정하도록 쿼리를 수정할 수 있습니다.

이제 동등 조건이 지정되는 방법에 대해 논의해 보겠습니다. 문서의 첫 번째 레코드를 식별하려면 findOne() 명령을 사용하십시오. 결과를 적절한 형식으로 표시하려면 Pretty 메서드를 사용할 수 있습니다.

db.items.find().pretty() 쿼리를 사용하여 컬렉션에 나열된 모든 문서를 식별하고 모든 문서를 표준화된 형식으로 표시합니다. 빈 쿼리를 사용하여 모든 문서(db.items.find( {} ))를 선택할 수 있습니다. 이 쿼리는 끝에 빈 쿼리 절이 있으므로 컬렉션에 나열된 모든 문서를 식별합니다.

쿼리 문서에 find 메서드를 지정하지 않고 빈 쿼리를 사용하면 둘 다 동일한 결과를 제공합니다. 따라서 db.items.find( {} ) 및 db.items.find() 쿼리는 사용된 결과의 관점에서 동일합니다.

쿼리를 조작하고 쿼리 커서 방법을 사용할 수 있으며 count 방법을 사용하면 쿼리와 일치하는 컬렉션의 문서 수를 찾을 수 있습니다. db.items.count()

4. 문서 업데이트

MongoDB에서 문서를 업데이트하려면 update() 메서드를 사용해야 합니다. 업데이트 방법에는 쿼리와 업데이트라는 두 가지 중요한 요소가 있습니다. 쿼리 매개변수가 먼저 오고 그 다음에 업데이트 매개변수가 옵니다. 다음은 예입니다.

db.users.update({이름:"마이크"}, {나이: 32})

그러나 이것은 값 쌍을 업데이트하는 올바른 방법이 아닙니다. 이 경우에는 연령입니다. 이를 통해 문서의 모든 내용을 덮어씁니다. 이 시대에 남을 유일한 것. 따라서 전체 문서에서 단일 값 쌍을 업데이트해야 할 때 몇 가지 키워드를 사용해야 합니다.

db.users.update({이름: “마이크”}, { $set: { 나이: 28}})

아무 것도 덮어쓰지 않습니다. 문서에 있는 모든 정보를 보유하게 됩니다. age 값만 업데이트됩니다.

5. 문서 제거

컬렉션에서 문서를 제거하려면 remove 메소드(db.courses.remove())를 사용하십시오. 이 명령은 주어진 컬렉션에서 모든 문서를 제거합니다. 제거하지 않는 것은 인덱스와 컬렉션 자체입니다. 때때로 remove 명령은 쿼리를 매개변수로 사용할 수 있습니다. 쿼리에서 언급한 기준과 일치하는 문서를 제거하려면 db.items.remove({"item": "Pen") 명령을 사용하십시오.

db.items.remove({" item" : "Bag},1) 명령을 사용하여 컬렉션에서 하나의 문서만 제거합니다. 모든 문서, 컬렉션 및 색인을 제거하려면 db.courses.drop() 명령(drop 메소드)을 사용하십시오.

결론

빅 데이터에 대해 더 알고 싶다면 PG 디플로마 빅 데이터 소프트웨어 개발 전문화 프로그램을 확인하세요. 이 프로그램은 실무 전문가를 위해 설계되었으며 7개 이상의 사례 연구 및 프로젝트를 제공하고 14개 프로그래밍 언어 및 도구, 실용적인 실습을 다룹니다. 워크샵, 400시간 이상의 엄격한 학습 및 최고의 기업과의 취업 지원.

세계 최고의 대학에서 온라인으로 소프트웨어 개발 과정배우십시오 . 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.

데이터 주도 기술 혁명을 주도하다

400시간 이상의 학습. 14개 언어 및 도구. IIIT-B 동문 현황.
IIT Bangalore의 빅 데이터 고급 인증 프로그램