Node.js 및 Azure Cosmos DB의 API for MongoDB를 사용하여 앱 빌드

적용 대상: MongoDB

이 예제에서는 Node.js 및 Azure Cosmos DB의 API for MongoDB를 사용하여 콘솔 앱을 빌드하는 방법을 보여줍니다.

이 예제를 사용하려면 다음을 수행해야 합니다.

  • Azure Cosmos DB의 API for MongoDB를 사용하도록 구성된 Azure Cosmos DB 계정을 만듭니다.
  • 연결 문자열 정보를 검색합니다.

앱 만들기

  1. 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();
            });
        });
        });
    });
    });
    
  2. 계정 설정에 따라 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';
    
  3. 즐겨찾는 터미널을 열고 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로 마이그레이션하기 위한 용량 계획을 수행하려고 하시나요? 용량 계획을 위해 기존 데이터베이스 클러스터에 대한 정보를 사용할 수 있습니다.