Membuat aplikasi menggunakan API Node.js dan Azure Cosmos DB untuk MongoDB

BERLAKU UNTUK: MongoDB

Penting

Apakah Anda ingin memigrasikan aplikasi MongoDB yang sudah ada atau menggunakan fitur MongoDB Query Language (MQL)? Pertimbangkan Azure DocumentDB.

Apakah Anda mencari solusi database untuk skenario skala tinggi dengan perjanjian tingkat layanan ketersediaan (SLA) 99,999%, skala otomatis instan, dan failover otomatis di beberapa wilayah? Pertimbangkan Azure Cosmos DB untuk NoSQL.

Contoh ini menunjukkan kepada Anda cara membuat aplikasi konsol menggunakan API Node.js dan Azure Cosmos DB untuk MongoDB.

Untuk menggunakan contoh ini, Anda harus:

  • Buat akun Azure Cosmos DB yang dikonfigurasi untuk menggunakan API Azure Cosmos DB untuk MongoDB.
  • Ambil informasi string koneksi Anda.

Membuat aplikasi

  1. Buat file app.js dan salin & tempel kode di bawah ini.

    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();
            });
        });
        });
    });
    });
    

    Opsional: Jika Anda menggunakan driver MongoDB Node.js 2.2 harap ganti cuplikan kode berikut:

    Orisinal:

    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();
            });
        });
        });
    });
    });
    

    Harus diganti dengan:

    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. Modifikasi variabel berikut dalam file app.js per pengaturan akun Anda (Pelajari cara menemukan string koneksi Anda):

    Penting

    Driver MongoDB Node.js 3.0 memerlukan pengodean karakter khusus dalam kata sandi Azure Cosmos DB. Pastikan untuk menyandikan karakter '=' sebagai %3D

    Contoh: Kata sandi jm1HbNdLg5zxEuyD86ajvINRFrFCUX0bIWP15ATK3BvSv== terkode menjadi jm1HbNdLg5zxEuyD86ajvINRFrFCUX0bIWP15ATK3BvSv%3D%3D

    Driver MongoDB Node.js 2.2 tidak memerlukan pengodean karakter khusus dalam kata sandi Azure Cosmos DB.

    var url = 'mongodb://<endpoint>:<password>@<endpoint>.documents.azure.com:10255/?ssl=true';
    
  3. Buka terminal favorit Anda, jalankan npm instal mongodb --simpan, lalu jalankan aplikasi Anda dengan node app.js

Langkah berikutnya