検索
ホームページデータベースモンゴDBMongoDBでドキュメントを作成、読み取り、更新、削除するにはどうすればよいですか?

この記事では、MongoDBでCreate、読み取り、更新、削除(CRUD)操作を実行しています。 INSERTONE()、find()、updateone()、deleteone()、およびインデックス、バッチオペラティオなどの効率的な操作のためのベストプラクティスなどの方法を使用してカバーします

MongoDBでドキュメントを作成、読み取り、更新、削除するにはどうすればよいですか?

MongodbでCRUD操作を実行する方法

このセクションでは、MongoDBで作成、読み取り、更新、削除(CRUD)操作を実行する方法について詳しく説明しています。 「製品」という名前のコレクションの例を使用して、 _idnameprice 、およびdescriptionフィールドを含むドキュメントを使用します。

ドキュメントの作成:新しいドキュメント(INSERT)を作成するには、 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>

このコードは、1つのラップトップドキュメントを挿入し、1つの操作に複数のドキュメント(タブレットとキーボード)を挿入します。 _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>

最初の例では、ラップトップの価格を更新します。 2番目の例では$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ブロック: 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でドキュメントを作成、読み取り、更新、削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Mongodb vs. Oracle:ニーズに合った適切なデータベースを選択するMongodb vs. Oracle:ニーズに合った適切なデータベースを選択するApr 22, 2025 am 12:10 AM

MongoDBは、構造化されていないデータと高いスケーラビリティ要件に適していますが、Oracleは厳格なデータの一貫性を必要とするシナリオに適しています。 1.MongoDBは、ソーシャルメディアやモノのインターネットに適したさまざまな構造にデータを柔軟に保存します。 2。Oracle構造化データモデルは、データの整合性を保証し、金融取引に適しています。 3.mongodbは、破片を介して水平方向に尺度を拡大し、OracleはRACを垂直にスケールします。 4.MongoDBにはメンテナンスコストが低く、Oracleにはメンテナンスコストが高くなりますが、完全にサポートされています。

MongoDB:最新のアプリケーション用のドキュメント指向データMongoDB:最新のアプリケーション用のドキュメント指向データApr 21, 2025 am 12:07 AM

MongoDBは、柔軟なドキュメントモデルと高性能ストレージエンジンで開発方法を変更しました。その利点には、次のものが含まれます。1。パターンのないデザイン、高速な反復を可能にします。 2。ドキュメントモデルは、ネストと配列をサポートし、データ構造の柔軟性を高めます。 3.自動シャード関数は、大規模なデータ処理に適した水平拡張をサポートします。

Mongodb vs. Oracle:それぞれの長所と短所Mongodb vs. Oracle:それぞれの長所と短所Apr 20, 2025 am 12:13 AM

MongoDBは、大規模な非構造化データを迅速に反復および処理するプロジェクトに適していますが、Oracleは高い信頼性と複雑なトランザクション処理を必要とするエンタープライズレベルのアプリケーションに適しています。 MongoDBは、柔軟なドキュメントストレージと効率的な読み取りおよび書き込み操作で知られています。これは、最新のWebアプリケーションとビッグデータ分析に適しています。 Oracleは、その強力なデータ管理機能とSQLサポートで知られており、金融や通信などの業界で広く使用されています。

MongoDB:NOSQLデータベースの紹介MongoDB:NOSQLデータベースの紹介Apr 19, 2025 am 12:05 AM

MongoDBは、複雑で構造化されていないデータの処理に適したBSON形式を使用してデータを保存するドキュメントベースのNOSQLデータベースです。 1)そのドキュメントモデルは柔軟で、頻繁に変化するデータ構造に適しています。 2)MongoDBは、WiredTigerストレージエンジンとクエリオプティマイザーを使用して、効率的なデータ操作とクエリをサポートします。 3)基本操作には、ドキュメントの挿入、クエリ、更新、削除が含まれます。 4)高度な使用法には、複雑なデータ分析に集約フレームワークを使用することが含まれます。 5)一般的なエラーには、接続の問題、クエリのパフォーマンスの問題、およびデータの一貫性の問題が含まれます。 6)パフォーマンスの最適化とベストプラクティスには、インデックスの最適化、データモデリング、シャード、キャッシュ、監視、チューニングが含まれます。

MongoDB対リレーショナルデータベース:比較MongoDB対リレーショナルデータベース:比較Apr 18, 2025 am 12:08 AM

MongoDBは、柔軟なデータモデルと高いスケーラビリティを必要とするシナリオに適していますが、リレーショナルデータベースは、複雑なクエリとトランザクション処理を使用するアプリケーションにより適しています。 1)Mongodbのドキュメントモデルは、迅速な反復現代アプリケーション開発に適応します。 2)リレーショナルデータベースは、テーブル構造とSQLを通じて複雑なクエリと金融システムをサポートします。 3)MongoDBは、大規模なデータ処理に適したシャードを介して水平スケーリングを実現します。 4)リレーショナルデータベースは垂直拡張に依存しており、クエリとインデックスを最適化する必要があるシナリオに適しています。

Mongodb vs. Oracle:パフォーマンスとスケーラビリティを調べますMongodb vs. Oracle:パフォーマンスとスケーラビリティを調べますApr 17, 2025 am 12:04 AM

MongoDBは、高いスケーラビリティと柔軟性の要件に適したパフォーマンスとスケーラビリティが優れています。 Oracleは、厳格なトランザクション制御と複雑なクエリを要求する上で優れたパフォーマンスを発揮します。 1.MongoDBは、大規模なデータと高い並行性シナリオに適した、シャードテクノロジーを通じて高いスケーラビリティを実現します。 2。Oracleは、構造化されたデータとトランザクション制御のニーズに適したパフォーマンスを改善するために、オプティマイザーと並列処理に依存しています。

Mongodb vs. Oracle:重要な違​​いの理解Mongodb vs. Oracle:重要な違​​いの理解Apr 16, 2025 am 12:01 AM

MongoDBは、大規模な構造化されていないデータの処理に適しており、Oracleはトランザクションの一貫性を必要とするエンタープライズレベルのアプリケーションに適しています。 1.MongoDBは、ユーザーの動作データの処理に適した柔軟性と高性能を提供します。 2。Oracleは、その安定性と強力な機能で知られており、金融システムに適しています。 3.MongoDBはドキュメントモデルを使用し、Oracleはリレーショナルモデルを使用します。 4.MongoDBはソーシャルメディアアプリケーションに適していますが、Oracleはエンタープライズレベルのアプリケーションに適しています。

MongoDB:スケーリングとパフォーマンスの考慮事項MongoDB:スケーリングとパフォーマンスの考慮事項Apr 15, 2025 am 12:02 AM

MongoDBのスケーラビリティとパフォーマンスの考慮事項には、水平スケーリング、垂直スケーリング、パフォーマンスの最適化が含まれます。 1.システム容量を改善するために、シャードテクノロジーを通じて水平拡張が達成されます。 2。垂直拡張により、ハードウェアリソースを増やすことでパフォーマンスが向上します。 3.パフォーマンスの最適化は、インデックスの合理的な設計と最適化されたクエリ戦略を通じて達成されます。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール