Com prometido, neste artigo estarei demonstrando como desenvolver uma integração básica com o Mongo DB (GET/SET) e C#, com os drivers que a própria Mongo DB desenvolve e dá suporte.
O código fonte completo do driver para .NET do Mongo DB pode ser baixado no site:
https://github.com/mongodb/mongo-csharp-driver/downloads
Se você não tem interesse no código fonte, também é possível baixar somente as DLLs (Setup).
A solution do driver é bem organizada (com testes unitários, setup e uma boa documentação), mas o que precisaremos são somente os binários do projeto Driver, assim basta dar um “build” em modo “release” e copiar as DLL para sua aplicação.

Após adicionadas e referenciadas as DLLs em um projeto .NET, no meu caso, uma aplicação WebService, vamos ao desenvolvimento:

O código abaixo demonstra a pesquisa de um único registro com o método Get e o parâmetro id, e com o método Set, a inserção e atualização de dados:
namespace MongoEndPoint
{
using System.Web.Services;
using System.Web.Script;
using MongoDB.Bson;
using MongoDB.Driver;
[WebService]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class MongoEndPoint : WebService
{
[WebMethod]
public string Get(int id)
{
string connectionString = "mongodb://localhost";
var server = MongoServer.Create(connectionString);
server.Connect();
var db = server.GetDatabase("azul");
var collection = db.GetCollection("coluna");
var query = new QueryDocument("id", id);
var obj = collection.FindOne(query);
if (obj == null || !obj.Contains("nome")) return null;
return obj["nome"].AsString;
}
[WebMethod]
public void Set(int id, string nome)
{
string connectionString = "mongodb://localhost";
var server = MongoServer.Create(connectionString);
server.Connect();
var db = server.GetDatabase("azul");
var collection = db.GetCollection("coluna");
var query = new QueryDocument("id", id);
var obj = collection.FindOne(query);
if (obj == null)
{
var doc = new BsonDocument();
doc.Add("id", id);
doc.Add("nome", nome);
collection.Insert(doc);
}
else
{
var doc = new UpdateDocument();
doc.Add("id", id);
doc.Add("nome", nome);
collection.Update(query, doc);
}
}
}
}
Por fim, o método Get:

E o método Set:

Este foi meu último artigo que planejei tratar sobre NoSQL, escrito principalmente para aqueles que acompanham os artigos do blog saibam um pouco sobre o outro “lado da moeda”.
Se eu conhecer ou me apresentarem outro NoSQL que me chame a atenção, estarei escrevendo novemente sobre o assunto, mas por hora espero que tenham gostado destes cinco artigos.
0 Respostas para “NoSQL – MongoDB e C#”