Creare un'app usando Node.js e l'API di Azure Cosmos DB per MongoDBBuild an app using Node.js and Azure Cosmos DB's API for MongoDB

SI APPLICA A: API di Azure Cosmos DB per MongoDB

Questo esempio mostra come creare un'app console usando Node.js e l'API di Azure Cosmos DB per MongoDB.This example shows you how to build a console app using Node.js and Azure Cosmos DB's API for MongoDB.

Per usare questo esempio è necessario:To use this example, you must:

  • Creare un account Cosmos configurato per usare l'API di Azure Cosmos DB per MongoDB.Create a Cosmos account configured to use Azure Cosmos DB's API for MongoDB.
  • Recuperare le informazioni relative alla stringa di connessione.Retrieve your connection string information.

Creare l'appCreate the app

  1. Creare un file app.js e copiare e incollare il codice seguente.Create a app.js file and copy & paste the code below.

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

    Facoltativo: se si usa il driver Node.js 2.2 di MongoDB, sostituire il frammento di codice seguente:Optional: If you are using the MongoDB Node.js 2.2 driver, please replace the following code snippet:

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

    Deve essere sostituito con:Should be replaced with:

    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. Modificare le variabili seguenti nel file app.js in base alle impostazioni dell'account (informazioni su come trovare la stringa di connessione):Modify the following variables in the app.js file per your account settings (Learn how to find your connection string):

    Importante

    Il driver Node.js 3.0 di MongoDB richiede la codifica dei caratteri speciali nella password di Cosmos DB.The MongoDB Node.js 3.0 driver requires encoding special characters in the Cosmos DB password. Assicurarsi di codificare i caratteri '=' come %3DMake sure to encode '=' characters as %3D

    Esempio: la password jm1HbNdLg5zxEuyD86ajvINRFrFCUX0bIWP15ATK3BvSv== viene codificata in jm1HbNdLg5zxEuyD86ajvINRFrFCUX0bIWP15ATK3BvSv%3D%3DExample: The password jm1HbNdLg5zxEuyD86ajvINRFrFCUX0bIWP15ATK3BvSv== encodes to jm1HbNdLg5zxEuyD86ajvINRFrFCUX0bIWP15ATK3BvSv%3D%3D

    Il driver Node.js 2.2 di MongoDB non richiede la codifica dei caratteri speciali nella password di Cosmos DB.The MongoDB Node.js 2.2 driver does not require encoding special characters in the Cosmos DB password.

    var url = 'mongodb://<endpoint>:<password>@<endpoint>.documents.azure.com:10255/?ssl=true';
    
  3. Aprire il terminale preferito, eseguire npm install mongodb --save, quindi eseguire l'app con node app.jsOpen your favorite terminal, run npm install mongodb --save, then run your app with node app.js

Passaggi successiviNext steps

  • Informazioni su come usare Studio 3T con l'API di Azure Cosmos DB per MongoDB.Learn how to use Studio 3T with Azure Cosmos DB's API for MongoDB.
  • Informazioni su come usare Robo 3T con l'API di Azure Cosmos DB per MongoDB.Learn how to use Robo 3T with Azure Cosmos DB's API for MongoDB.
  • Esplorare gli esempi di MongoDB con l'API di Azure Cosmos DB per MongoDB.Explore MongoDB samples with Azure Cosmos DB's API for MongoDB.