Node.js 및 Azure Cosmos DB의 API for MongoDB를 사용하여 앱 빌드
적용 대상: MongoDB
이 예제에서는 Node.js 및 Azure Cosmos DB의 API for MongoDB를 사용하여 콘솔 앱을 빌드하는 방법을 보여줍니다.
이 예제를 사용하려면 다음을 수행해야 합니다.
앱 만들기
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 파일에서 다음 변수를 수정합니다(연결 문자열을 찾는 방법 자세히 알아보기).
Important
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의 API for MongoDB와 함께 Studio 3T를 사용하는 방법을 알아봅니다.
- Azure Cosmos DB의 API for MongoDB와 함께 Robo 3T를 사용하는 방법을 알아봅니다.
- Azure Cosmos DB의 API for MongoDB를 사용하여 MongoDB 샘플을 살펴봅니다.
- Azure Cosmos DB로 마이그레이션하기 위한 용량 계획을 수행하려고 하시나요? 용량 계획을 위해 기존 데이터베이스 클러스터에 대한 정보를 사용할 수 있습니다.
- 기존 데이터베이스 클러스터의 vCore 및 서버 수만을 알고 있는 경우, vCore 또는 vCPU를 사용하여 요청 단위 추정을 참조하세요
- 현재 데이터베이스 워크로드에 대한 일반적인 요청 비율을 알고 있는 경우 Azure Cosmos DB 용량 계획 도구를 사용하여 요청 단위 예측에 대해 읽어보세요.