Node.js および Azure Cosmos DB の MongoDB 用 API を使用してアプリを構築する
適用対象: MongoDB
次の例は、Node.js および Azure Cosmos DB の MongoDB 用 API を使用してコンソール アプリを構築する方法を示しています。
この例を使用するための前提条件は、以下のとおりです。
アプリを作成する
app.js ファイルを作成し、次のコードをコピーして貼り付けます。
var MongoClient = require('mongodb').MongoClient; var assert = require('assert'); var ObjectId = require('mongodb').ObjectID; var url = 'mongodb://<username>:<password>@<endpoint>.documents.azure.com:10255/?ssl=true'; var insertDocument = function(db, callback) { db.collection('families').insertOne( { "id": "AndersenFamily", "lastName": "Andersen", "parents": [ { "firstName": "Thomas" }, { "firstName": "Mary Kay" } ], "children": [ { "firstName": "John", "gender": "male", "grade": 7 } ], "pets": [ { "givenName": "Fluffy" } ], "address": { "country": "USA", "state": "WA", "city": "Seattle" } }, function(err, result) { assert.equal(err, null); console.log("Inserted a document into the families collection."); callback(); }); }; var findFamilies = function(db, callback) { var cursor =db.collection('families').find( ); cursor.each(function(err, doc) { assert.equal(err, null); if (doc != null) { console.dir(doc); } else { callback(); } }); }; var updateFamilies = function(db, callback) { db.collection('families').updateOne( { "lastName" : "Andersen" }, { $set: { "pets": [ { "givenName": "Fluffy" }, { "givenName": "Rocky"} ] }, $currentDate: { "lastModified": true } }, function(err, results) { console.log(results); callback(); }); }; var removeFamilies = function(db, callback) { db.collection('families').deleteMany( { "lastName": "Andersen" }, function(err, results) { console.log(results); callback(); } ); }; MongoClient.connect(url, function(err, client) { assert.equal(null, err); var db = client.db('familiesdb'); insertDocument(db, function() { findFamilies(db, function() { updateFamilies(db, function() { removeFamilies(db, function() { client.close(); }); }); }); }); });
省略可能: MongoDB Node.js 2.2 ドライバーを使用する場合、次のコード スニペットを置き換えてください。
元のコード:
MongoClient.connect(url, function(err, client) { assert.equal(null, err); var db = client.db('familiesdb'); insertDocument(db, function() { findFamilies(db, function() { updateFamilies(db, function() { removeFamilies(db, function() { client.close(); }); }); }); }); });
以下のコードに置き換える必要があります。
MongoClient.connect(url, function(err, db) { assert.equal(null, err); insertDocument(db, function() { findFamilies(db, function() { updateFamilies(db, function() { removeFamilies(db, function() { db.close(); }); }); }); }); });
アカウント設定に従って、app.js ファイル内の次の変数を変更します (接続文字列を確認する方法はこちらを参照)。
重要
MongoDB Node.js 3.0 ドライバーでは、Azure Cosmos DB パスワード内の特殊文字をエンコードする必要があります。 '=' 文字を必ず %3D としてエンコードします。
例: パスワード jm1HbNdLg5zxEuyD86ajvINRFrFCUX0bIWP15ATK3BvSv== は、jm1HbNdLg5zxEuyD86ajvINRFrFCUX0bIWP15ATK3BvSv%3D%3D にエンコードされます。
MongoDB Node.js 2.2 ドライバーでは、Azure Cosmos DB パスワード内の特殊文字をエンコードする必要はありません。
var url = 'mongodb://<endpoint>:<password>@<endpoint>.documents.azure.com:10255/?ssl=true';
お好きなターミナルを開き、npm install mongodb --save を実行してから、node app.js でアプリを実行します。
次のステップ
- Azure Cosmos DB の MongoDB 用 API と共に Studio 3T を使用する方法を学習します。
- Azure Cosmos DB の MongoDB 用 API と共に Robo 3T を使用する方法を学びます。
- Azure Cosmos DB の MongoDB 用 API を使用した MongoDB のサンプルを調査します。
- Azure Cosmos DB への移行のための容量計画を実行しようとしていますか? 容量計画のために、既存のデータベース クラスターに関する情報を使用できます。
- 既存のデータベース クラスター内の仮想コアとサーバーの数のみがわかっている場合は、仮想コア数または仮想 CPU 数を使用した要求ユニットの見積もりに関するページを参照してください
- 現在のデータベース ワークロードに対する通常の要求レートがわかっている場合は、Azure Cosmos DB Capacity Planner を使用した要求ユニットの見積もりに関するページを参照してください