Criar um aplicativo usando o Node.js e a API do Azure Cosmos DB para MongoDB
APLICA-SE A: MongoDB
Este exemplo mostra como criar um aplicativo de console usando o Node.js e a API do Azure Cosmos DB para MongoDB.
Para utilizar este exemplo, tem de:
- Crie uma conta do Azure Cosmos DB configurada para usar a API do Azure Cosmos DB para MongoDB.
- Recupere as informações da cadeia de conexão.
Criar a aplicação
Crie um ficheiro app.js e copie e cole o código abaixo.
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(); }); }); }); }); });
Opcional: se estiver a utilizar o controlador do MongoDB Node.js 2.2, substitua o seguinte fragmento de código:
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 ser substituído por:
MongoClient.connect(url, function(err, db) { assert.equal(null, err); insertDocument(db, function() { findFamilies(db, function() { updateFamilies(db, function() { removeFamilies(db, function() { db.close(); }); }); }); }); });
Modifique as seguintes variáveis no ficheiro app.js conforme as definições da sua conta (Saiba como encontrar a sua cadeia de ligação):
Importante
O driver MongoDB Node.js 3.0 requer a codificação de caracteres especiais na senha do Azure Cosmos DB. Certifique-se de que codifica os carateres "=" como %3D
Exemplo: A palavra-passe jm1HbNdLg5zxEuyD86ajvINRFrFCUX0bIWP15ATK3BvSv== é codificada para jm1HbNdLg5zxEuyD86ajvINRFrFCUX0bIWP15ATK3BvSv%3D%3D
O driver MongoDB Node.js 2.2 não requer a codificação de caracteres especiais na senha do Azure Cosmos DB.
var url = 'mongodb://<endpoint>:<password>@<endpoint>.documents.azure.com:10255/?ssl=true';
Abra o seu terminal favorito, execute npm install mongodb --save e, em seguida, execute a aplicação com node app.js
Próximos passos
- Saiba como usar o Studio 3T com a API do Azure Cosmos DB para MongoDB.
- Saiba como usar o Robo 3T com a API do Azure Cosmos DB para MongoDB.
- Explore exemplos do MongoDB com a API do Azure Cosmos DB para MongoDB.
- Tentando fazer o planejamento de capacidade para uma migração para o Azure Cosmos DB? Você pode usar informações sobre seu cluster de banco de dados existente para planejamento de capacidade.
- Se tudo o que você sabe é o número de vcores e servidores em seu cluster de banco de dados existente, leia sobre como estimar unidades de solicitação usando vCores ou vCPUs
- Se você souber as taxas de solicitação típicas para sua carga de trabalho de banco de dados atual, leia sobre como estimar unidades de solicitação usando o planejador de capacidade do Azure Cosmos DB