using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MongoDB.Bson;
using MongoDB.Driver;
// https://docs.mongodb.com/drivers/csharp/
// https://mongodb.github.io/mongo-csharp-driver/2.13/getting_started/quick_tour/
// https://cloud.mongodb.com/v2/6142bf8600516e180d5ff4b5#clusters
// Uses AWS cloud with NoSQL MongoDB storage (Atlas)
// Sample to add db/document with object data and delete data
// Display collections before/after insert/delete
namespace TopNugetPackages
{
public class MongoData
{
public string name { get; set; }
public string type { get; set; }
public int count { get; set; }
}
public class MongoDB : ITopNugetPackages
{
private IMongoCollection<BsonDocument> collec;
private readonly string connStr = "mongodb+srv://timhsu:abcd@cluster0.najcl.mongodb.net/myFirstDatabase?retryWrites=true&w=majority";
public void DoIt()
{
var client = new MongoClient(connStr);
var db = client.GetDatabase("myFirstDatabase");
collec = db.GetCollection<BsonDocument>("config");
//var document = new BsonDocument
//{
// { "name", "Street Fighter" },
// { "type", "Game" },
// { "count", 2 },
// { "info", new BsonDocument
// {
// { "x", 20 },
// { "y", 12 }
// }}
//};
var mongoData = new MongoData { name = "Tim", type = "DB", count = 3 };
var document = mongoData.ToBsonDocument();
collec.InsertOne(document);
DisplayAll();
// now delete and display again
var filter = Builders<BsonDocument>.Filter.Eq("count", 3);
collec.DeleteMany(filter);
DisplayAll();
}
private void DisplayAll()
{
var doclist = collec.Find(new BsonDocument()).ToList();
foreach (var doc in doclist)
{
Console.WriteLine(doc.ToString());
}
Console.WriteLine();
}
}
}