概要

MongoDBのためのOracle Database APIでは、MongoDBアプリケーション、ドライバおよびツールをOracle Databaseに接続できます。APIは、MongoDBワイヤ・プロトコルを介してコマンドを受信し、それらのコマンドをSQL文に変換します。

MongoDBのためのOracle Database API

MongoDBのAPIは、次のユース・ケースをサポートすることを目的としています:

スタート・ガイド

MongoDBアプリケーションは、MongoDBに接続する場合もOracle Databaseに接続する場合も同じように動作します。次のMongoDBシェル・セッション(mongosh)について考えてみます:

mongosh 'mongodb://admin:####@ORACLEDB.oraclecloudapps.com:27017/admin?...'

// create a collection named "employees"
admin> db.createCollection('employees')
{ ok: 1 }

// insert three employee documents into the collection
admin> db.employees.insertOne({_id:1, "name":"SMITH", "job":"CLERK", "sal":800});
{ acknowledged: true, insertedId: 1 }
admin> db.employees.insertOne({_id:2, "name":"ALLEN", "job":"SALESMAN", "sal":1600});
{ acknowledged: true, insertedId: 2 }
admin> db.employees.insertOne({_id:3, "name":"WARD", "job":"SALESMAN", "sal":1250});
{ acknowledged: true, insertedId: 3 }

// find the name and job for employees where the salary is greater than 1200
admin> db.employees.find({"sal" : {$gt : 1200}}, {"name" : 1, "job" : 1,  "_id" : 0});
[
  { name: 'ALLEN', job: 'SALESMAN' },
  { name: 'WARD', job: 'SALESMAN' }
]

このシェル・セッションは、コレクションを作成し、ドキュメントを挿入してから、データの一部を取得します。このスクリプトの動作は、MongoDBに対して実行するか、Oracle Databaseに対して実行するかに関係なく同じになります。ただし、Oracle Databaseに対して実行すると、APIによって受信される各コマンドは、対応するSQL文に透過的に変換されます。次の表に、この例のAPIによって内部的に生成されるものと同様のSQLを示します:

コマンド mongosh SQL
CREATE db.createCollection('employees'); create json collection table "employees";
INSERT db.employees.insertOne( {_id:1, "name":"SMITH", "job":"CLERK", "sal":800} ); insert into "employees" values( '{_id:1, "name":"SMITH", "job":"CLERK", "sal":800}' );
FIND db.employees.find( {"sal" : {$gt : 1200}}, {"name" : 1, "job" : 1, "_id" : 0} ); select e.data."name", e.data."job" from employees e where e.data."sal" > 1200;

APIで内部的に使用されるこれらのSQL/JSON文は、sqlclなどのSQLクライアントから直接送信することも、$SQL集計ステージを使用して送信することもできます。MongoDBクライアント、SQLツールまたはRESTエンドポイントを介してコレクションにアクセスしたかどうかに関係なく、データは同じOracle Databaseスキーマ内に存在します。チームは、データを複製したり、複雑なデータ移動プロセスを構築したりすることなく、これらのアクセス・パターンを組み合せることができます。SQLは役に立つ場合には常に使用可能ですが、そうでない場合は必要ありません。

APIの有効化

MongoDBのためのOracle Database APIは、Autonomous Databaseデプロイメントを含むOracle Database 23ai以降で使用できます。アクティブ化ステップは、データベース・タイプによって異なります。詳細な手順については、次のリンクを参照してください:

データベース・タイプ 説明
Autonomous AI Database Serverless マネージド・サービスの一部として利用できます。
MongoDBのためのOracle Database APIの使用
『MongoDB移行のためのクイック・スタート・ガイド』
Autonomous AI Database Dedicated マネージド・サービスの一部として利用できます。
専用Exadataインフラストラクチャ上のOracle Autonomous AI DatabaseでのMongoDB APIの使用
その他のすべてのOracle Databaseバージョン Oracle REST Data Servicesの一部として、データベースの外部でユーザーが管理します。
MongoDBのためのOracle Database APIのサポート
MongoDBのためのOracle Database API – ベスト・プラクティス

このドキュメントの残りの部分は、3つのすべてのデプロイメント・オプションに適用されます。例では、特に明記されていないかぎり、MongoDBシェル(mongosh)を使用します。