English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
MongoDBはクロスプラットフォームのドキュメント指向データベースで、高性能、高可用性、そして拡張性を提供します。MongoDBはコレクションとドキュメントの概念に専念しています。
MongoDBはデータベースプログラムであり、MongoDBはCで書かれています。 ++言語で書かれています。
無料 - アプリケーションで使用するために何の代償も必要ありません。
オープンソース - オープンソースはオープンであり、オープンソースコミュニティはMongoDBデータベースプログラムの開発に貢献しています。
クロスプラットフォーム - MongoDBはプラットフォーム(例えばLinux)上に構築されており、他のプラットフォーム(Windows、MacOSなど)上でもコードの変更なしで実行できます。
ドキュメント指向 - MongoDBはJSON形式でレコード(ドキュメント)を保存します(例えば)。これにより、多くの利点があります。顕著な利点の1つは、データベースに新しい機能(関係データベースの列)を追加する際の煩雑さがありません。
NoSQL(SQLのみではありません) - MongoDBはドキュメントベースのデータベースを使用しており、各ドキュメントは複雑な値を持つキーです。ドキュメントの値は複数のキー値対を含むことができます。
データベースは収集に使用される物理コンテナです。各データベースはファイルシステム上に独自のファイルセットを持っています。MongoDBサーバは通常、複数のデータベースを持っています。
コレクションはMongoDBのドキュメントの集合です。これはRDBMSのテーブルに相当します。コレクションは単一のデータベース内に存在します。コレクションはスキーマを強制しません。コレクションのドキュメントは異なるフィールドを持つことができます。通常、コレクションのすべてのドキュメントは相似または関連する目的を持っています。
ドキュメントはキー値対の集合です。ドキュメントは動的スキーマを持っています。動的スキーマとは、同じコレクションのドキュメントが同じフィールドや構造を持たないことを意味し、コレクションのドキュメントの公共フィールドは異なるデータ型のデータを保存できます。
以下の表は、RDBMS用語とMongoDBの関係を示しています。
リレーショナルデータベース管理システム | MongoDB |
---|---|
データベース | データベース |
テーブル | コレクション |
タプル/行 | ドキュメント |
列 | フィールド |
テーブル結合 | エンブリードドドキュメント |
主キー制約 | 主キー(MongoDB が提供するデフォルトの _id) |
データベースサーバおよびクライアント | |
mysqld / Oracle | mongod |
mysql / sqlplus | mongo |
以下の例では、ブログサイトのドキュメント構造を示しています。これは単なるカンマ区切りのキー値対です。
{ _id: ObjectId(7df78ad8902c) title: MongoDB 概要 description: MongoDB は NoSQL データベース by: 基础教程 url: https://ja.oldtoolbag.com tags: ['mongodb', 'database', 'NoSQL'], likes: 100, comments: [ { user:'user1', message: 'My first comment', dateCreated: new Date(2011,1,20,2,15, like: 0 }, { user:'user2', message: 'My second comments', dateCreated: new Date(2011,1,25,7,45, like: 5 } ] }
_idは12バイトの16進数数字は、各ドキュメントのユニーク性を保証します。ドキュメントを挿入する際にIDを提供できます。提供しない場合、MongoDBは各ドキュメントにユニークなIDを提供します。これは12バイトの前の4バイトは現在のタイムスタンプに使用され、次に3バイトはマシンIDに使用され、次に2バイトはMongoDBサーバーのプロセスIDに使用され、残りの3バイトは単純な増分値です。