using MongoDB.Bson;
using MongoDB.Driver;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Generic
{
public class MongoDBDemo
{
// 定义接口
protected static IMongoDatabase _database;
// 定义客户端
protected static IMongoClient _client;
public static void GetData()
{
// 定义要查询的集合名称
const string collectionName = "user";
// 读取连接字符串
string strCon = ConfigurationManager.ConnectionStrings["mongodbConn"].ConnectionString;
var mongoUrl = new MongoUrlBuilder(strCon);
// 获取数据库名称
string databaseName = mongoUrl.DatabaseName;
// 创建并实例化客户端
_client = new MongoClient(mongoUrl.ToMongoUrl());
// 根据数据库名称实例化数据库
_database = _client.GetDatabase(databaseName);
// 根据集合名称获取集合
var collection = _database.GetCollection<BsonDocument>(collectionName);
var filter = new BsonDocument();
// 查询集合中的文档
var list = Task.Run(async () => await collection.Find(filter).ToListAsync()).Result;
// 循环遍历输出
list.ForEach(p =>
{
Console.WriteLine("姓名:" + p["username"].ToString() + ",性别:" + p["sex"].ToString());
});
//collection.InsertOne();
Console.ReadKey();
}
public void Mongo()
{
//建立连接
var client = new MongoClient();
//建立数据库
var database = client.GetDatabase("TestDb");
//建立collection
var collection = database.GetCollection<BsonDocument>("foo");
var document = new BsonDocument
{
{"name","MongoDB"},
{"type","Database"},
{"count",1},
{"info",new BsonDocument{{"x",203},{"y",102}}}
};
//插入数据
collection.InsertOne(document);
var count = collection.CountDocuments(document);
Console.WriteLine(count);
//查询数据
var document1 = collection.Find(document);
Console.WriteLine(document1.ToString());
//更新数据
var filter = Builders<BsonDocument>.Filter.Eq("name", "MongoDB");
var update = Builders<BsonDocument>.Update.Set("name", "Ghazi");
collection.UpdateMany(filter, update);
//删除数据
var filter1 = Builders<BsonDocument>.Filter.Eq("count", 101);
collection.DeleteMany(filter1);
BsonDocument document2 = new BsonDocument();
document2.Add("name", "MongoDB");
document2.Add("type", "Database");
document2.Add("count", "1");
collection.InsertOne(document2);
}
}
}