首先添加所需要驱动包(可通过nuget获得)
using MongoDB.Bson;
using MongoDB.Driver;
using MongoDB.Driver.Builders;
一、设置配置信息
//连接信息 static string conn = "mongodb://localhost"; static string database = "test"; static string collection = "person"; static MongoServer mongodb = MongoServer.Create(conn);//连接数据库 static MongoDatabase db = mongodb.GetDatabase(database);//选择数据库名 static MongoCollection mc = db.GetCollection(collection);//选择集合,相当于表
二、插入数据库
public static void Insert(Person p) { mc.Insert(p); } public static void Insert(BsonDocument b) { mc.Insert(b); }
三、更新数据库
public static void Update(Person p) { BsonDocument bd = BsonExtensionMethods.ToBsonDocument(p); IMongoQuery query = Query.EQ("_id", p._id); mc.Update(query, new UpdateDocument(bd)); } public static void Update(QueryDocument q,UpdateDocument u) { mc.Update(q, u); }
四、删除某条记录
public static void Delete(int id) { mc.Remove(Query.EQ("_id", id)); }
五、查询数据库
public static Person Find(int id) { return mc.FindOneAs<Person>(Query.EQ("_id", id)); } public static MongoCursor<Person> FindAll() { return mc.FindAllAs<Person>(); } public static MongoCursor<Person> Select(QueryDocument q) { return mc.FindAs<Person>(q); }
六、统计数据个数
public static long Count(QueryDocument q) { return mc.Count(q); }
七、排序和分页
public static MongoCursor<Person> SkipAndLimit(int a, int b) { return mc.FindAllAs<Person>().SetSkip(a).SetLimit(b); }
八、应用与示例
static void Main(string[] args) { mongodb.Connect(); //var person = Find(124); //Console.WriteLine(person.Name); //person.Name = "guizhu"; //Update(person); //Console.WriteLine(person.Name); var query = new QueryDocument { { "_id",13} }; var update = new UpdateDocument { { "$set", new QueryDocument { { "PassWord", "aaaaa" } } } }; Update(query,update); //对象插入 //Person p = new Person { _id = 12, Name = "hello", PassWord = "4444" }; //Insert(p); //BsonDocument 插入 //BsonDocument b = new BsonDocument(); //b.Add("_id", 13); //b.Add("Name", "world"); //b.Add("PassWord", "6666"); //Insert(b); //var p= FindAll(); //foreach (var person in p) //{ // Console.WriteLine(person.Name); //} //QueryDocument query = new QueryDocument(); //BsonDocument b = new BsonDocument(); //b.Add("$gte", 123); //b.Add("$lt", 125); //query.Add("_id", b); //var p=Select(query); //foreach (var person in p) //{ // Console.WriteLine(person.Name); //} //Console.WriteLine(Count(query)); //FieldsDocument f = new FieldsDocument(); //f.Add("Name", 1); //MongoCursor<Person> m = mc.FindAs<Person>(query).SetFields(f); //foreach (var person in p) //{ // Console.WriteLine(person.Name); //} //SortByDocument s = new SortByDocument(); //s.Add("_id", 1);//-1=DESC //var p = Sort(s); //foreach (var person in p) //{ // Console.WriteLine(person.Name); //} //var p = SkipAndLimit(1, 3); //foreach (var person in p) //{ // Console.WriteLine(person.Name); //} //Delete(12); Console.WriteLine("完成"); Console.ReadLine(); }
class Person { public int _id; public string Name; public string PassWord; }
原文:http://www.cnblogs.com/xuhang/p/4201417.html