> 데이터 베이스 > 몽고DB > MongoDB에서 문서 (CRUD) 문서를 작성, 읽기, 업데이트 및 삭제하는 방법은 무엇입니까?

MongoDB에서 문서 (CRUD) 문서를 작성, 읽기, 업데이트 및 삭제하는 방법은 무엇입니까?

Karen Carpenter
풀어 주다: 2025-03-11 18:04:17
원래의
737명이 탐색했습니다.

이 기사는 MongoDB에서 CRUD (Create, Read, Update 및 Delete) 작업을 수행하는 것을 자세히 설명합니다. 인덱싱, Batch Operatio를 포함한 효율적인 작업을위한 insertone (), find (), updateone (), deleteone () 및 모범 사례와 같은 메소드를 사용하여 다룹니다.

MongoDB에서 문서 (CRUD) 문서를 작성, 읽기, 업데이트 및 삭제하는 방법은 무엇입니까?

MongoDB에서 CRUD 작업을 수행하는 방법

이 섹션에서는 MongoDB에서 CRUD (Create, Read, Update 및 Delete) 작업을 수행하는 방법에 대해 자세히 설명합니다. _id , name , pricedescription 필드가 포함 된 문서와 함께 "Products"라는 컬렉션의 예를 사용하겠습니다.

문서 작성 : 새 문서 (삽입)를 만들려면 insertOne() 메소드 (단일 문서의 경우) 또는 insertMany() (여러 문서의 경우)를 사용합니다. 다음은 MongoDB 쉘을 사용하는 예입니다.

 <code class="javascript">db.products.insertOne( { name: "Laptop", price: 1200, description: "Powerful laptop" } ) db.products.insertMany( [ { name: "Tablet", price: 300, description: "Android tablet" }, { name: "Keyboard", price: 75, description: "Mechanical keyboard" } ] )</code>
로그인 후 복사

이 코드는 하나의 노트북 문서를 삽입 한 다음 단일 작업에 여러 문서 (태블릿 및 키보드)를 삽입합니다. _id 필드는 제공되지 않으면 자동으로 생성됩니다. 드라이버 별 구현은 각 드라이버 insertOne() 또는 insertMany() 메소드를 사용하여 유사합니다.

문서 읽기 : 문서를 읽으면 find() 사용하여 컬렉션을 쿼리하는 것입니다. 특정 문서를 검색하기 위해 필터를 지정할 수 있습니다. 예를 들어:

 <code class="javascript">// Find all products db.products.find() // Find products with price less than 500 db.products.find( { price: { $lt: 500 } } ) // Find a single product by its ID db.products.findOne( { _id: ObjectId("...") } ) // Replace ... with the actual ObjectId</code>
로그인 후 복사

find() 커서를 반환하여 결과를 반복 할 수 있습니다. findOne() 쿼리와 일치하는 단일 문서를 반환합니다. 다시, 드라이버 구현에는 동등한 방법이 있습니다.

문서 업데이트 : MongoDB는 문서를 업데이트하는 몇 가지 방법을 제공합니다. updateOne() 단일 문서를 업데이트하고 updateMany() 는 여러 문서를 업데이트합니다. $set 연산자를 사용하여 필드를 수정합니다.

 <code class="javascript">// Update the price of a specific product db.products.updateOne( { name: "Laptop" }, { $set: { price: 1300 } } ) // Increase the price of all products by 10% db.products.updateMany( {}, { $inc: { price: { $multiply: [ 0.1, "$price" ] } } } )</code>
로그인 후 복사

첫 번째 예제는 노트북의 가격을 업데이트합니다. 두 번째 예제는 $inc 운영자를 사용하여 모든 제품의 가격을 증분합니다. $push , $pull , $addToSet 등과 같은 다른 업데이트 운영자를 사용하여보다 복잡한 업데이트를 달성 할 수 있습니다.

문서 삭제 : deleteOne() 단일 문서를 제거하고 deleteMany() 여러 문서를 제거합니다.

 <code class="javascript">// Delete a specific product db.products.deleteOne( { name: "Keyboard" } ) // Delete all products with price greater than 1000 db.products.deleteMany( { price: { $gt: 1000 } } )</code>
로그인 후 복사

이 명령은 제공된 기준에 따라 문서를 제거합니다.

MongoDB의 효율적인 CRUD 운영을위한 모범 사례

효율적인 CRUD 운영에는 몇 가지 요인을 신중하게 고려해야합니다.

  • 인덱싱 : 자주 쿼리 된 필드에서 인덱스를 생성하여 find() 작업 속도를 높이십시오. 인덱스는 관계형 데이터베이스의 지수와 유사합니다. 쿼리를 기반으로 적절한 인덱스 유형 (예 : 단일 필드, 복합, 지리 공간)을 선택하십시오.
  • 배치 작업 : insertMany() , updateMany()deleteMany() 사용하여 단일 배치로 여러 문서에서 작업을 수행하여 개별 작업에 비해 성능을 크게 향상시킵니다.
  • 데이터 모델링 : 데이터 모델을 신중하게 설계하여 공통 작업에 필요한 쿼리 수를 최소화하십시오. 적절한 스키마 설계는 쿼리 성능을 극적으로 향상시킬 수 있습니다.
  • 쿼리 최적화 : 속도가 느려질 수있는 조항이 $where 사용하지 마십시오. 대신 $gt , $lt , $in 등과 같은 운영자를 사용하여 인덱스를 효과적으로 활용하십시오. 적절한 프로젝션 ( { _id: 0, name: 1, price: 1 } )을 사용하여 필요한 필드 만 검색하여 데이터 전송을 줄입니다.
  • 연결 풀링 : 연결 풀링을 사용하여 데이터베이스 연결을 재사용하여 각 작업에 대한 새로운 연결을 설정하는 오버 헤드를 줄입니다. 대부분의 드라이버는 내장 연결 풀링 기능을 제공합니다.

CRUD 작업 중 오류 처리

강력한 MongoDB 응용 프로그램의 경우 오류 처리가 중요합니다. 드라이버는 CRUD 작업 중에 예외를 잡고 처리하는 메커니즘을 제공합니다.

  • Try-Catch Blocks : try-catch 블록 내에서 CRUD 작업을 래핑하여 네트워크 문제, 유효하지 않은 데이터 또는 데이터베이스 오류와 같은 잠재적 오류를 처리합니다.
  • 오류 코드 : 데이터베이스에서 반환 한 오류 코드를 검사하여 오류의 원인을 결정하고 우아하게 처리 할 적절한 논리를 구현합니다. MongoDB는 자세한 오류 코드 문서를 제공합니다.
  • 로깅 : 디버깅 및 모니터링 목적으로 로그 오류. 오류 메시지, 스택 추적 및 실패한 작업과 같은 관련 정보를 포함하십시오.
  • 재 시도 메커니즘 : 과도 오류 (예 : 네트워크 타임 아웃)에 대한 재 시도 메커니즘을 구현합니다. 회복력을 향상시키기 위해 짧은 지연 후에 실패한 작업을 다시 시도하십시오.

다른 드라이버로 CRUD 작업을 수행합니다

CRUD 작업을 수행하는 특정 방법은 사용 된 드라이버에 따라 약간 다릅니다. 다음은 Node.js 및 Python에 대한 간단한 개요입니다.

node.js ( mongodb 드라이버 사용) :

 <code class="javascript">const { MongoClient } = require('mongodb'); // ... connection code ... const client = new MongoClient(uri); async function run() { try { await client.connect(); const db = client.db('mydatabase'); const collection = db.collection('products'); // ... CRUD operations using collection.insertOne(), collection.find(), etc. ... } finally { await client.close(); } } run().catch(console.dir);</code>
로그인 후 복사

Python ( pymongo 드라이버 사용) :

 <code class="python">import pymongo # ... connection code ... client = pymongo.MongoClient(uri) db = client['mydatabase'] collection = db['products'] # ... CRUD operations using collection.insert_one(), collection.find(), etc. ... client.close()</code>
로그인 후 복사

두 예 모두 기본 구조를 보여줍니다. 사용 가능한 방법 및 옵션에 대한 자세한 정보는 특정 드라이버의 문서를 참조하십시오. uri 와 같은 자리 표시자를 실제 연결 문자열로 교체해야합니다.

위 내용은 MongoDB에서 문서 (CRUD) 문서를 작성, 읽기, 업데이트 및 삭제하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿