Skip to content

Instantly share code, notes, and snippets.

@alexandrebl
Last active March 23, 2017 23:15
Show Gist options
  • Select an option

  • Save alexandrebl/af0d52ede5cc39a0df394346802491d7 to your computer and use it in GitHub Desktop.

Select an option

Save alexandrebl/af0d52ede5cc39a0df394346802491d7 to your computer and use it in GitHub Desktop.
Exemplo de persistência de dados utilizando o MongoDB
using System;
using MongoDB.Bson.Serialization.Attributes;
using MongoDB.Driver;
using Newtonsoft.Json;
namespace MongoDBPersitDataExample {
/// <summary>
/// Programa principal
/// Dependências NuGet: install-package mongocsharpdriver
/// install-package newtonsoft.json
/// </summary>
internal class Program
{
/// <summary>
/// Método principal
/// </summary>
private static void Main()
{
//Objeto de persistência de dados
var persistData = new PersistData();
//Dados do produto
var produto = new Produto {Key = Guid.NewGuid(), Marca = "Dell", Nome = "Notebook Latitude"};
//Insere o item no banco de dados
persistData.InsertItem(produto);
//Informa que o item foi inserido
Console.WriteLine("Item inserido com sucesso");
//Obtem um produto
var produtoFound = persistData.GetItem(produto.Key);
//Imprime dados do produto encontrado
Console.WriteLine(JsonConvert.SerializeObject(produtoFound));
//Aguarda uma tecla ser pressionada
Console.ReadKey();
}
}
/// <summary>
/// Classe de persistência
/// </summary>
public class PersistData
{
/// <summary>
/// Insere um produto no banco dedados
/// </summary>
/// <param name="produto">Dados do produto</param>
public async void InsertItem(Produto produto)
{
//Cria um cliente
var client = new MongoClient("mongodb://localhost:27017");
//Obtem o banco de dados
var database = client.GetDatabase("Estoque");
//Obtem a coleção
var collection = database.GetCollection<Produto>("Informatica");
//Insere um item no banco de dados
await collection.InsertOneAsync(produto);
}
public Produto GetItem(Guid key)
{
//Cria um cliente
var client = new MongoClient("mongodb://localhost:27017");
//Obtem o banco de dados
var database = client.GetDatabase("Estoque");
//Obtem a coleção
var collection = database.GetCollection<Produto>("Informatica");
//Insere um item no banco de dados
var produto = collection.Find(f => f.Key == key, new FindOptions() {AllowPartialResults = false}).SingleOrDefault();
//Retorno
return produto;
}
}
/// <summary>
/// Classe que representa um produto
/// </summary>
[BsonIgnoreExtraElements]
public class Produto
{
/// <summary>
/// Chave
/// </summary>
public Guid Key { get; set; }
/// <summary>
/// Nome
/// </summary>
public string Nome { get; set; }
/// <summary>
/// Marca
/// </summary>
public string Marca { get; set; }
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment