ホームページ バックエンド開発 PHPチュートリアル PHP プログラマーとして MongoDB について知っておくべき 5 つのこと_PHP チュートリアル

PHP プログラマーとして MongoDB について知っておくべき 5 つのこと_PHP チュートリアル

Jul 21, 2016 pm 03:09 PM
mongodb php sql 学ぶ 人々 意思 プログラマー

2010 年は SQL が死んだ年として記憶されるべきです。今年はリレーショナル データベースが終焉を迎える年であり、開発者はデータを保存するために列やテーブルを苦労して作成する必要がなくなったと認識した年です。
2010年は文書データベースの元年となります。この勢いは長年続いていますが、今ではますます大規模な文書ベースのデータベースが登場する時代になりました。クラウドベースの Amazon から Google、多数のオープンソース ツール、そしてその結果として誕生した CouchDB や MongoDB まで。
それでは、PHP 開発者が知っておくべき 5 つのことを説明します:
1. MongoDB はテーブルではなくドキュメントに基づいています。別の言語を学ぶ必要はありません。
5. MongoDB は優れた PHP サポートを備えています。


1. MongoDB は別のサーバーです
MySQL や PostgreSQL と同様に、MongoDB は受信接続をリッスンします。提供されるツールには、クエリ、作成、更新、削除が含まれます。理論的には、MySQL や PostgreSQL と同じように動作し、接続し、処理し、接続を閉じます。
2. 行やテーブルに別れを告げ、ドキュメントとコレクターを歓迎します

データを保存するテーブルや行の代わりに、MongoDB はデータをドキュメントに保存します。複数の作成者、トピック、タグが含まれる「記事」というタイトルがあるとします。これはすべて以下のようになります:

コードをコピーします

コードは次のとおりです:array(
'title'=>'Hello World',
'authors'=>array('John' ,' サリー','ジム'),
'body'=>'Hello world',
'tags'=>array('tag1','tag2','tag3')
);
?>


上記の例で最も重要なことは、そのレコード、つまりこのドキュメントです。はい、実際にドキュメントのように保存され、同じ領域に保存される複合値をサポートしています。データをテーブルに構造化したり分割したりする必要はありません。したがって、テーブルはもう存在しません。
3. MongoDB に含まれるスキーマが少ない
MongoDB にはスキーマ言語がありません。新しいドキュメント タイプを作成する場合は、データベースに何も伝える必要はありません。新しいデータをデータベースに入れるだけです。
2 番目のポイントでは、ドキュメントをシミュレートしました。ここで、すべての分野の記事タイプを定義したいと思います。必要なのは、このデータをデータベースに書き込むことだけです。書き込みを延期する場合は、データを取り出して日付フィールドを追加して保存するだけです。
データ型についてはどうでしょうか? 簡単に言うと、MongoDB は JavaScript や PHP と同様の強制システムを使用しているということです。このようにして、データベースは型の役割を大幅に弱めます。
これにはいくつかの穴があります (非常に大量のデータにはいくつかの明示的な定義が必要です) が、ほとんどの場合、PHP でプログラミングするのと同じように MongoDB コードを記述します。
4. 別の言語を学ぶ必要はありません
自分が作成した他のデータベース抽象化レイヤーを思い出してください。これまでに使用したすべての ORM レイヤーを思い出してください。その後、それらを今すぐ破棄できます。MongoDB ではそれらは必要ありません。
MongoDB (PHP ドライバーを含む) にはクエリ言語は必要ありません。ほとんどの場合、ポインターを指定して必要なものを指定するだけで、文書が返されます。
いくつかの高階関数 (Map-Reduce など) を実行する場合、JavaScript アプリケーションを通じて MongoDB に参加し、これらのスクリプトを JavaScript 内部エンジンで実行できます。
5. PHP と MongoDB は自然に一致しますか?
PHP はすでに MongoDB を適切にサポートしています。 Mongo ドライバーは PECL アドオンとして PHP に追加できます。つまり、PECL を実行して Mongo をインストールするのと同じようにインストールできます。
これを見て、Mongo の API を書き始めることができます。より広範には、PDO とランクされます。単に機能しなくなったわけではありませんが、これまでに開発したデータベースとは明らかに異なります。
API のドキュメントにはウォークスルーと多くの例が含まれているため、すぐにブートストラップすることができます。以下に、非常に役立つヒントをいくつか紹介します。
MongoDB は非常に速く開発されています。
開発時間は非常に短く、管理する必要のある過剰なスキーマはなく、データ マッピングは (あったとしても) ほとんどありません。
新たに学習するクエリ言語がないため、コードの調整は最小限で済みます。結局のところ、別の ORM は必要なく、パケットは非常に軽量です。
コードは将来性があるため、より多くのフィールドやさらに複雑なフィールドをオブジェクトに簡単に追加できます。そのため、コードは変化する要件に簡単に適応できます。
詳しく読む
Mongo は、多くのシナリオで従来のリレーショナル データベースやキー/値ストレージの置き換えに使用できる、高性能、オープンソース、スキーマレスのドキュメント データベースです。 Mongo は C++ を使用して開発され、次の機能を提供します。
コレクション指向のストレージ: オブジェクトとデータを JSON 形式で保存するのに適しています。
動的クエリ: Mongo は豊富なクエリ式をサポートしています。クエリ コマンドは、JSON 形式のタグを使用して、ドキュメントに埋め込まれたオブジェクトと配列を簡単にクエリします。
完全なインデックスサポート: 埋め込みドキュメントオブジェクトと配列を含みます。 Mongo のクエリ オプティマイザーはクエリ式を分析し、効率的なクエリ プランを生成します。
クエリ監視: Mongo には、データベース操作のパフォーマンスを分析するための監視ツールが含まれています。
レプリケーションと自動フェイルオーバー: Mongo データベースはサーバー間のデータ レプリケーションをサポートし、マスター/スレーブ モードとサーバー間の相互レプリケーションをサポートします。レプリケーションの主な目的は、冗長性と自動フェイルオーバーを提供することです。
効率的な​​従来のストレージ方法: バイナリ データと大きなオブジェクト (写真や画像など) をサポートします。
クラウドレベルのスケーラビリティをサポートする自動シャーディング (初期アルファ段階): 自動シャーディングは、追加のマシンが動的に追加される水平データベースクラスターをサポートします。 MongoDB の主な目標は、キー/バリュー ストレージ (高いパフォーマンスと高いスケーラビリティを提供) と従来の RDBMS システム (豊富な機能) の間のブリッジを構築し、両方の利点を統合することです。公式ウェブサイトの説明によると、Mongo は次のシナリオに適しています:

ウェブサイトデータ: Mongo はリアルタイムの挿入、更新、クエリに非常に適しており、リアルタイムに必要なレプリケーションと高い拡張性を備えています。ウェブサイトのデータストレージ。
キャッシュ: その高いパフォーマンスにより、Mongo は情報インフラストラクチャのキャッシュ層としても適しています。システムの再起動後、Mongo によって構築された永続キャッシュ レイヤーにより、基礎となるデータ ソースの過負荷を防ぐことができます。
サイズが大きく、価値の低いデータ: 従来のリレーショナル データベースを使用して一部のデータを保存すると、以前はプログラマーがストレージとして従来のファイルを選択することがよくありました。
高いスケーラビリティのシナリオ: Mongo は、数十または数百のサーバーで構成されるデータベースに最適です。Mongo のロードマップには、すでに MapReduce エンジンのサポートが組み込まれています。
オブジェクトと JSON データのストレージの場合: Mongo の BSON データ形式は、文書化された形式でのストレージとクエリに非常に適しています。
当然のことながら、MongoDB の使用にはいくつかの制限があります。たとえば、次のようなシステムには適していません。
高度なトランザクション システム: 銀行や会計システムなど。現在、従来のリレーショナル データベースは、多数のアトミックで複雑なトランザクションを必要とするアプリケーションにより適しています。
従来のビジネス インテリジェンス アプリケーション: 特定の問題を対象とする BI データベースは、高度に最適化されたクエリ方法を生成します。このようなアプリケーションには、データ ウェアハウスがより適切な選択肢となる可能性があります。
SQL を必要とする質問。
MongoDB は、OS X、Linux、Windows などのオペレーティング システムをサポートし、Python、PHP、Ruby、Java、C++ 言語用のドライバーを提供します。コミュニティは、Erlang や .NET などのプラットフォーム用のドライバーも提供します。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/327248.html技術記事 2010 年は SQL が死んだ年として記憶されるべきです。今年は、リレーショナル データベースが終焉を迎える年です。開発者は、列やテーブルを構築するために長時間かけて苦労する必要がなくなったと認識します。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホット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 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

PHPおよびPython:コードの例と比較 PHPおよびPython:コードの例と比較 Apr 15, 2025 am 12:07 AM

PHPとPythonには独自の利点と短所があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1.PHPは、大規模なWebアプリケーションの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンスと機械学習の分野を支配しています。

PHPおよびPython:さまざまなパラダイムが説明されています PHPおよびPython:さまざまなパラダイムが説明されています Apr 18, 2025 am 12:26 AM

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHP:データベースとサーバー側のロジックの処理 PHP:データベースとサーバー側のロジックの処理 Apr 15, 2025 am 12:15 AM

PHPはMySQLIおよびPDO拡張機能を使用して、データベース操作とサーバー側のロジック処理で対話し、セッション管理などの関数を介してサーバー側のロジックを処理します。 1)MySQLIまたはPDOを使用してデータベースに接続し、SQLクエリを実行します。 2)セッション管理およびその他の機能を通じて、HTTPリクエストとユーザーステータスを処理します。 3)トランザクションを使用して、データベース操作の原子性を確保します。 4)SQLインジェクションを防ぎ、例外処理とデバッグの閉鎖接続を使用します。 5)インデックスとキャッシュを通じてパフォーマンスを最適化し、読みやすいコードを書き、エラー処理を実行します。

PHPの目的:動的なWebサイトの構築 PHPの目的:動的なWebサイトの構築 Apr 15, 2025 am 12:18 AM

PHPは動的なWebサイトを構築するために使用され、そのコア関数には次のものが含まれます。1。データベースに接続することにより、動的コンテンツを生成し、リアルタイムでWebページを生成します。 2。ユーザーのインタラクションを処理し、提出をフォームし、入力を確認し、操作に応答します。 3.セッションとユーザー認証を管理して、パーソナライズされたエクスペリエンスを提供します。 4.パフォーマンスを最適化し、ベストプラクティスに従って、ウェブサイトの効率とセキュリティを改善します。

PHPとPythonの選択:ガイド PHPとPythonの選択:ガイド Apr 18, 2025 am 12:24 AM

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

作曲家を使用して、推奨システムのジレンマを解決する:Andres-Montanez/推奨 作曲家を使用して、推奨システムのジレンマを解決する:Andres-Montanez/推奨 Apr 18, 2025 am 11:48 AM

eコマースのWebサイトを開発するとき、私は困難な問題に遭遇しました。ユーザーにパーソナライズされた製品の推奨事項を提供する方法です。当初、私はいくつかの簡単な推奨アルゴリズムを試しましたが、結果は理想的ではなく、ユーザーの満足度も影響を受けました。推奨システムの精度と効率を改善するために、より専門的なソリューションを採用することにしました。最後に、Andres-Montanez/Adcumentations Bundleを介してAndres-Montanez/Bundleをインストールしました。これは、問題を解決しただけでなく、推奨システムのパフォーマンスを大幅に改善しました。次の住所から作曲家を学ぶことができます。

PHPとPython:彼らの歴史を深く掘り下げます PHPとPython:彼らの歴史を深く掘り下げます Apr 18, 2025 am 12:25 AM

PHPは1994年に発信され、Rasmuslerdorfによって開発されました。もともとはウェブサイトの訪問者を追跡するために使用され、サーバー側のスクリプト言語に徐々に進化し、Web開発で広く使用されていました。 Pythonは、1980年代後半にGuidovan Rossumによって開発され、1991年に最初にリリースされました。コードの読みやすさとシンプルさを強調し、科学的コンピューティング、データ分析、その他の分野に適しています。

なぜPHPを使用するのですか?利点と利点が説明されました なぜPHPを使用するのですか?利点と利点が説明されました Apr 16, 2025 am 12:16 AM

PHPの中心的な利点には、学習の容易さ、強力なWeb開発サポート、豊富なライブラリとフレームワーク、高性能とスケーラビリティ、クロスプラットフォームの互換性、費用対効果が含まれます。 1)初心者に適した学習と使用が簡単。 2)Webサーバーとの適切な統合および複数のデータベースをサポートします。 3)Laravelなどの強力なフレームワークを持っています。 4)最適化を通じて高性能を達成できます。 5)複数のオペレーティングシステムをサポートします。 6)開発コストを削減するためのオープンソース。

See all articles