メインコンテンツまでスキップ

MongoDB

MongoDBは、主にドキュメント向けのデータベース管理システムになり、非SQLデータベースになります。Webアプリに拡張可能な高パフォーマンスのデータストレージソリューションを提供しています。SQLデータベースとは別に、MongoDBはSQLコマンドでデータベースを操作していなく、データベースコマンド(Database Commands)か、より簡単で使いやすいCRUD方法を使用してデータベースを操作しています。

JSONとBSONのマッピング

MongoDBはデータをBSONフォーマットで保存します。BSONはJSONのスーパーセットと見なすことができます。Apidogを使用してMongoDBデータベースを操作する際、JSONを使用してコンテンツを記述する必要があります。ApidogはJSONの実際のコンテンツに基づき、各フィールドを対応するBSONデータ型に自動的にマッピングします。

その中で、_idフィールドは特殊です。MongoDBの規範により、各ドキュメントには主キーとして_idフィールドが必要で、デフォルトのデータ型はstringではなく、ObjectIdであります。

Apidogを使用する場合、ObjectId型の_idフィールドを宣言するには、通常の文字列フォーマットを使用してください。文字列の内容がObjectIdのフォーマットに一致する場合、Apidogはこれを自動的にBSONのObjectId型にマッピングします。

たとえば、MongoDBに次のようなBSONドキュメントがあるとします:

    {
_id: ObjectId('65486728456e79993a150f1c'),
name: "Apidog"
}

その場合、Apidogを使用して_idを使ってこのドキュメントを検索するには、「クエリ条件」に次のJSONを入力する必要があります:

    {
"_id": "65486728456e79993a150f1c"
}

CRUD操作

一般的なCRUD(作成/読み取り/更新/削除)操作について、Apidogは視覚的な操作インターフェースを提供しています。JavaScriptコードを記述する必要はありません。「操作の種類」で対応する操作を選択し、「コレクション名」を入力し、JSONを使用してコンテンツを記述するだけです。

たとえば、上記のクエリ操作のインターフェースは次のようになります。「コンソールに結果を出力する」を有効にすると、クエリ結果がコンソールに表示されるようになります。

MongoDB

データベースコマンドの実行

より高度な操作が必要な場合、Apidogはデータベースコマンドの直接実行もサポートしています。「操作の種類」で「データベースコマンドの実行」を選択し、JSON形式のデータベースコマンドを入力します。注意が必要なのは、データベースコマンドは db.collection.findOne() のようなメソッド呼び出しを指すのではないということです。

たとえば、testコレクションにname田中というドキュメントを挿入する場合、Apidogで操作タイプをシングルドキュメントの挿入にして、ドキュメントで次のようなコマンドを入力するだけで実現できます。

    {
"name": "{{customerName}}"
}

ここで、二重波括弧で囲まれるのは、Apidogの変数です。{{customerName}}変数の値は、APIのレスポンスのデータを参照することができます。このように、ApidogでMongoDBを操作する際、変数を読み込んでデータベースを操作することもできるので、非常に便利です。

MongoDBにシングルドキュメントの挿入

また、usersコレクション内のドキュメント数をクエリするには、count データベースコマンドを実行できます:

    {
"count": "users"
}

そして、コンソールに出力される結果は、そのコレクション内に3つのドキュメントがあることを示しています。