发表于 2015-7-9 09:18:30

使用NoRM操作MongoDB

  NoRM是.NET平台下MongoDB的第三方驱动,可以使用强类型的类操作MongoDB。使用NoRM非常简单,只需要在工程中引用Norm.dll即可。下面来看一个例子。
  首先建立一个表示人员信息的模型

View Code

class Person
    {
      
      publicstring ID
      {
            get
            {
                return _id;
            }
      }
      publicstring Name { get; set; }
      publicint Age { get; set; }
      public List Phone { get; set; }
      privatestring _id;
      public Person()
      {
            _id = Guid.NewGuid().ToString();
            Phone =new List();
      }
      publicvoid AddPhone(string phone)
      {
            Phone.Add(phone);
      }
    }  接下来连接数据库

View Code

using (var db =new Mongo("Person", "127.0.0.1", "27017", null))
{
      var personColl = db.Database.GetCollection("Person");
}  新增数据并显示

View Code

Person person1 =new Person();
person1.Name ="Person1";
person1.Age =1;
person1.AddPhone("13500000001");
person1.AddPhone("13500000002");
Person person2 =new Person();
person2.Name ="Person2";
person2.Age =2;
person2.AddPhone("13500000003");
person2.AddPhone("13500000004");
personColl.Insert(person1);
personColl.Insert(person2);
ShowPersonList(personColl);  显示部分代码如下:

View Code

privatestaticvoid ShowPersonList(IMongoCollection personColl)
      {
            foreach (Person person in personColl.AsQueryable())
            {
                Console.WriteLine("Person Name is {0}, age is {1}", person.Name, person.Age.ToString());
                string phoneInfo ="Phone Numbers:";
                foreach (var phone in person.Phone)
                {
                  phoneInfo += phone +"";
                }
                Console.WriteLine(phoneInfo);
            }
            Console.WriteLine("Person Numbers:{0}", personColl.Count());
      }  修改数据

View Code

person2.Phone.RemoveAt(0);
person2.Age =3;
personColl.Save(person2);
ShowPersonList(personColl);  删除数据

View Code

personColl.Delete(person1);
ShowPersonList(personColl);  结果显示如下:
页: [1]
查看完整版本: 使用NoRM操作MongoDB