Introdução ao MongoDB com Azure CosmosDB

0

Com o lançamento do Azure CosmosDB que foi o recente lançamento da Microsoft para soluções de armazenamento de dados com o conceito de multi-model, novas possibilidades surgiram e a conexão com CosmosDB através da API de MongoDB é uma delas.

De acordo com a documentação do Azure Cosmos DB pela Microsoft:
“O Azure Cosmos DB é o banco de dados multi-modelo globalmente distribuído da Microsoft. Com o clique de um botão, o Azure Cosmos DB permite escalar elasticamente e de forma independente o throughput e o armazenamento em qualquer uma das regiões geográficas do Azure. Ele oferece throughput, latência, disponibilidade, E garantias de consistência com acordos abrangentes de nível de serviço (SLAs), algo que nenhum outro serviço de banco de dados pode oferecer. O Azure Cosmos DB contém um mecanismo de banco de dados, otimizado, baseado em recursos e otimizado para escrita que suporta nativamente vários modelos de dados: valor-chave, documentos e gráficos , E colunar. Ele também suporta muitas APIs para acessar dados incluindo MongoDB, DocumentDB SQL, Gremlin (preview) e Azure Tables (preview), de forma extensível “.

Este artigo girará em torno de como criar servidor de banco de dados MongoDB na nuvem Azure e, em seguida, conecte-o com sua aplicação.

1. Entre no portal Azure .

2. Vá para Novo

3. Digite MongoDB na barra de pesquisa.

4. Selecione Database como um serviço para MongoDB

5. Clique no botão Criar

6. Preencha os detalhes e clique em Criar

7. Depois do seu grupo de recursos e quando os recursos forem implantados com êxito, clique nele para ver.

8. Inicialmente, sua conta no Azure Cosmos DB não terá nenhum banco de dados ou coleção. Para criar um, clique em Adicionar coleção.

9. Preencha os detalhes e clique em OK. Depois de fazer isso, sua coleção será mostrada.

10. Clique no Data Explorer e execute consultas do Mongo como o servidor local Mongo.

11. Agora, clique em Cadeia de conexão e copie a string de conexão.

Com isto terminamos a parte “burocrática”. Criamos um servidor de CosmosDB com a API de MongoDB. Agora veja um pequeno exemplo de conexão com o driver do MongoDB com conexão para o Cosmos

    using System;  
    using System.Collections.Generic;  
    using System.Linq;  
    using System.Text;  
    using System.Threading.Tasks;  
    using MongoDB.Driver;  
    using MongoDB.Bson;  
      
    namespace ConsAppMongoDBCRUD  
    {  
        class Program  
        {  
            static void Main(string[] args)  
            {  
                try  
                {  
                    MongoClient dbClient = new MongoClient("<sua conection string>");  
      
                    //Listagem de bancos
                    var dbList = dbClient.ListDatabases().ToList();  
      
                    Console.WriteLine("Bancos disponíveis :");  
                    foreach (var item in dbList)  
                    {  
                        Console.WriteLine(item);  
                    }  
      
                    Console.WriteLine("\n\n");  
      
                    //Get Database and Collection  
                    IMongoDatabase db = dbClient.GetDatabase("MyWorkMongoDB");  
                    var collList = db.ListCollections().ToList();  
                    Console.WriteLine("Suas coleções :");  
                    foreach (var item in collList)  
                    {  
                        Console.WriteLine(item);  
                    }  
      
                    var personColl = db.GetCollection<BsonDocument>("PersonsCollection");  
      
                    //CREATE  
                    BsonElement personFirstNameElement = new BsonElement("PersonFirstName", "Sankhojjal");  
      
                    BsonDocument personDoc = new BsonDocument();  
                    personDoc.Add(personFirstNameElement);  
                    personDoc.Add(new BsonElement("PersonAge", 23));  
      
                    personColl.InsertOne(personDoc);  
      
                    //UPDATE  
                    BsonElement updatePersonFirstNameElement = new BsonElement("PersonFirstName", "Souvik");  
      
                    BsonDocument updatePersonDoc = new BsonDocument();  
                    updatePersonDoc.Add(updatePersonFirstNameElement);  
                    updatePersonDoc.Add(new BsonElement("PersonAge", 24));  
      
                    BsonDocument findPersonDoc = new BsonDocument(new BsonElement("PersonFirstName", "Sankhojjal"));  
      
                    var updateDoc = personColl.FindOneAndReplace(findPersonDoc, updatePersonDoc);  
      
                    Console.WriteLine(updateDoc);  
      
                    //DELETE  
                    BsonDocument findAnotherPersonDoc = new BsonDocument(new BsonElement("PersonFirstName", "Sourav"));  
      
                    personColl.FindOneAndDelete(findAnotherPersonDoc);  
      
                    //READ  
                    var resultDoc = personColl.Find(new BsonDocument()).ToList();  
                    foreach (var item in resultDoc)  
                    {  
                        Console.WriteLine(item.ToString());  
                    }  
                }  
                catch (Exception ex)  
                {  
                    Console.WriteLine(ex.Message);  
                }  
      
                Console.ReadKey();  
            }  
        }  
    }   

 

Com isto fizemos um pequeno CRUD com MongoDB utilizando os drivers oficiais de conexão diretamente no CosmosDB. Você pode ver mais sobre MongoDB aqui.

O que você achou da proposta do CosmosDB?

Um grande abraço!

Compartilhe.

Sobre o autor

Criador do blog Código Simples e com mais 9 anos de experiência em TI, com títulos de MVP Microsoft na área de Visual Studio Development, Neo4j Top 50 Certificate, Scrum Master e MongoDB Evangelist. Atuando em funções analista, desenvolvedor, arquiteto, líder técnico e gestor de equipes. Mais informações em : http://jhonathansoares.com