Freigeben über


Erstellen einer App mit Node.js und der API für MongoDB von Azure Cosmos DB

GILT FÜR: Mongodb

Wichtig

Möchten Sie eine vorhandene MongoDB-Anwendung migrieren oder MongoDB Query Language (MQL)-Features verwenden? Betrachten Sie Azure DocumentDB.

Suchen Sie nach einer Datenbanklösung für hochskalige Szenarien mit einer Vereinbarung über verfügbarkeitsbasierte Servicelevels (Service Level Agreement, SLA) von 99,999% Verfügbarkeit, sofortige Automatische Skalierung und automatisches Failover über mehrere Regionen hinweg? Betrachten Sie Azure Cosmos DB für NoSQL.

Dieses Beispiel zeigt Ihnen, wie Sie eine Konsolenanwendung mit Node.js und der API für MongoDB von Azure Cosmos DB erstellen.

Um dieses Beispiel zu verwenden, müssen Sie Folgendes tun:

  • Erstellen Sie ein Azure Cosmos DB-Konto, das für die Verwendung der Azure Cosmos DB-API für MongoDB konfiguriert ist.
  • Rufen Sie die Informationen zur Verbindungszeichenfolge ab.

Erstellen der App

  1. Erstellen Sie eine app.js-Datei, kopieren Sie den unten stehenden Code, und fügen Sie ihn in die Datei ein.

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

    Optional: Bei Verwendung des MongoDB-Node.js 2.2-Treibers muss der folgende Codeausschnitt ersetzt werden:

    Original:

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

    Ersetzen durch:

    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. Ändern Sie die folgenden Variablen in der app.js-Datei gemäß Ihren Kontoeinstellungen (informieren Sie sich darüber, wie Sie Ihre Verbindungszeichenfolge finden):

    Wichtig

    Bei Verwendung des MongoDB-Node.js 3.0-Treibers müssen Sonderzeichen im Azure Cosmos DB-Kennwort codiert werden. Das Gleichheitszeichen (=) muss als „%3D“ codiert werden.

    Beispiel: Das Kennwort jm1HbNdLg5zxEuyD86ajvINRFrFCUX0bIWP15ATK3BvSv== wird zu jm1HbNdLg5zxEuyD86ajvINRFrFCUX0bIWP15ATK3BvSv%3D%3D kodiert.

    Bei Verwendung des MongoDB-Node.js 2.2-Treibers müssen Sonderzeichen im Azure Cosmos DB-Kennwort nicht codiert werden.

    var url = 'mongodb://<endpoint>:<password>@<endpoint>.documents.azure.com:10255/?ssl=true';
    
  3. Öffnen Sie Ihr bevorzugtes Terminal, führen Sie npm install mongodb --save aus, und führen Sie dann Ihre App mit node app.js aus.

Nächste Schritte