MongoDB是NoSql中一直使用比较广泛的数据库,闲来无事,学习学习
至于如何安装,配置MongoDB的环境请查看:http://cn.docs.mongodb.org/manual/installation/,里面基本的CRUD也详细介绍了,仔细看看
我是安装了Window7 64位使用的版本。
由于我使用C#,所以还得去下个MongoDB的C#下的驱动,请查看:http://www.mongodb.org/display/DOCS/CSharp+Language+Center
安装好驱动后,把里面的MongoDB.Driver.dll,MongoDB.BSon.dll引用到工程中,这样就万事具备了,开始开工了
简单的插入和查询数据:
class Person { public ObjectId _id;//BsonType.ObjectId//这个对应了 MongoDB.Bson.ObjectId 对目前的 mongdb 来说必须要有这个 public int Uid; public string Name; public string PassWord; } class Program { static void Main(string[] args) { string connectionString = "mongodb://localhost"; string databasename = "myDatabase"; string collectionName = "myCollection"; MongoClient client = new MongoClient(connectionString); MongoServer server = client.GetServer(); MongoDatabase database = server.GetDatabase("test"); // MongoCollection<Entity> collection = database.GetCollection<Entity>("entities"); //Entity entity = new Entity { Name = "Tom" }; //collection.Insert(entity); //var id = entity.Id; //Console.WriteLine(id); //var query = Query.EQ("_id", id); //entity = collection.FindOne(query); //entity.Name = "Dick"; //collection.Save(entity); //var update = Update.Set("Name", "Harry"); //collection.Update(query, update); //entity = collection.FindOne(query); //Console.WriteLine(entity.Name); //collection.Remove(query); MongoCollection mongoCollection = database.GetCollection("demo"); //先插入数据 MongoInsert(server, mongoCollection); //再查下数据,我暂时屏蔽了,等插入之后,就将插入那句给屏蔽,查询的这句放开 // MongoSelect(mongoCollection); Console.ReadKey(); } private static void MongoSelect(MongoCollection mongoCollection) { //更新字段名称,由于我在插入时,把第一行的Password的名字写错了,跟后面两行不同,就改下名称 var queryName = Query.EQ("Uid", 123); var updateName = Update.Rename("Password", "PassWord"); mongoCollection.Update(queryName, updateName); /*--------------------------------------------- * sql : SELECT * FROM table *--------------------------------------------- */ MongoCursor<Person> p = mongoCollection.FindAllAs<Person>(); //第一种读取的方式 foreach (var i in p) { Console.WriteLine("_id:{0}", i._id); Console.WriteLine(i.Uid + "\\" + i.Name + "\\" + i.PassWord); } /*--------------------------------------------- * sql : SELECT * FROM table WHERE Uid > 10 AND Uid < 20 *--------------------------------------------- */ QueryDocument query = new QueryDocument(); BsonDocument b = new BsonDocument(); b.Add("$gt", 100); b.Add("$lt", 124); query.Add("Uid", b); MongoCursor<Person> m = mongoCollection.FindAs<Person>(query); foreach (BsonDocument book in mongoCollection.FindAs<BsonDocument>(query)) //第二种读取的方式 { Console.WriteLine(book.ToString()); Console.WriteLine("_id:{0}", book["_id"].AsObjectId); Console.WriteLine(book["Uid"].AsInt32 + "\\" + book["Name"].AsString + "\\" + book["PassWord"].AsString); } /*----------------------------------------------- * sql : SELECT COUNT(*) FROM table WHERE Uid > 10 AND Uid < 20 *----------------------------------------------- */ long c = mongoCollection.Count(query); /*----------------------------------------------- * sql : SELECT Name FROM table WHERE Uid > 10 AND Uid < 20 *----------------------------------------------- */ FieldsDocument f = new FieldsDocument(); f.Add("Name", 1); MongoCursor<Person> mc = mongoCollection.FindAs<Person>(query).SetFields(f); /*----------------------------------------------- * sql : SELECT * FROM table ORDER BY Uid DESC LIMIT 10,10 *----------------------------------------------- */ SortByDocument s = new SortByDocument(); s.Add("Uid", -1); //-1=DESC MongoCursor<Person> ms = mongoCollection.FindAllAs<Person>().SetSortOrder(s).SetSkip(10).SetLimit(10); } private static void MongoInsert(MongoServer server, MongoCollection mongoCollection) { //普通插入 server.Connect(); var o = new { Uid = 123, Name = "xixiNormal", Password = "111111" }; mongoCollection.Insert(o); //对象插入 Person p = new Person { Uid = 124, Name = "xixiObject", PassWord = "222222" }; mongoCollection.Insert(p); //BsonDocument插入 BsonDocument b = new BsonDocument(); b.Add("Uid", 125); b.Add("Name", "xixiBson"); b.Add("PassWord", "333333"); mongoCollection.Insert(b); }