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を使用してコンテンツを記述するだけです。
たとえば、上記のクエリ操作のインターフェースは次のようになります。「コンソールに結果を出力する」を有効にすると、クエリ結果がコンソールに表示されるようになります。
データベースコマンドの実行
より高度な操作が必要な場合、Apidogはデータベースコマンドの直接実行もサポートしています。「操作の種類」で「データベースコマンドの実行」を選択し、JSON形式のデータベースコマンドを入力します。注意が必要なのは、データベースコマンドは db.collection.findOne()
のようなメソッド呼び出しを指すのではないということです。
たとえば、test
コレクションにname
が田中
というドキュメントを挿入する場合、Apidogで操作タイプをシングルドキュメントの挿入
にして、ドキュメントで次のようなコマンドを入力するだけで実現できます。
{
"name": "{{customerName}}"
}
ここで、二重波括弧で囲まれるのは、Apidogの変数です。{{customerName}}
変数の値は、APIのレスポンスのデータを参照することができます。このように、ApidogでMongoDBを操作する際、変数を読み込んでデータベースを操作することもできるので、非常に便利です。
また、users
コレクション内のドキュメント数をクエリするには、count
データベースコマンドを実行できます:
{
"count": "users"
}
そして、コンソールに出力される結果は、そのコレクション内に3つのドキュメントがあることを示しています。