Windows/Linux 跨语言通信框架:www.harries.cn !

Harry.Mongodb客户端介绍

添加时间:2014-11-05   浏览次数:2247

Mongo DB ,是目前在IT行业非常流行的一种非关系型数据库(NoSql),其灵活的数据存储方式,备受当前IT从业人员的青睐。Mongo DB很好的实现了面向对象的思想(OO思想),在Mongo DB中 每一条记录都是一个Document对象。Mongo DB最大的优势在于所有的数据持久操作都无需开发人员手动编写SQL语句,直接调用方法就可以轻松的实现CRUD操作

一、客户端使用说明
1、创建一个测试实体类,Harry.Mongodb数据表与实体类一一对应,实体类的名称就是表的名字

 public class TestEntity
    {
        public long ID { get; set; }
        public string Title { get; set; }
        public string Content { get; set; }
        public DateTime AddTime { get; set; }
    }

2、创建Harry.Mongodb实例
      Harry.Mongodb.Factory<TestEntity> mongo = Harry.Mongodb.Factory<TestEntity>.CreateInstance();

3、NewTestEntity
     TestEntity te=new TestEntity(){ ID=1111,Title="标题",Content="内容",AddTime=System.DateTime.Now};

4、将实体添加到数据库
     mongo.Insert(te);

6、更新单个实体
    te.Title = "更新后的标题";
    mongo.Update(te);

7、指定条件更新
     mongo.Update(new { ID = 1111 }, new {content=mongo.Operator.Set("新内容") });

8、根据ID删除
    mongo.Delete(1111);

9、按条件删除
    mongo.Delete(new { ID=1111});

10、查询单个实体
    mongo.Result.Where(p => p.ID == 1111).FirstOrDefault<T>();

11、Linq查询
     var obj = from a in mongo.Result
                      where a.ID == 1111
                      select a;

12、Linq多条件查询
        var objmore = from a in mongo.Result
                 where a.ID == 1111 && a.AddTime>System.DateTime.Now
                 select a;

13、Linq in查询
            List<long> ids = new List<long>();
            ids.Add(1);
            ids.Add(1111);
           var objin = from a in mongo.Result
                        where ids.Contains(a.ID)
                        select a;

14、linq 关键字查询 类似sql的 like
         var objkey = from a in mongo.Result
                    where a.Title.Contains("关键字")
                    select a;

15、指定字段
            var objpage = from a in mongo.Result
                          where a.Title.Contains("关键字")
                          select new { a.ID,a.Title,a.AddTime};

16、返回结果集
            List<TestEntity> result = objkey.ToList();

 17、Linq分页查找
          List<TestEntity> resultPage = objkey.Skip(10).Take(50).ToList();

二、Harry.Mongodb的更新操作符Operator

1、Increment:意思对一个数字字段field增加value
2、Set:就是相当于sql的set field = value,全部数据类型都支持$set。
3、Push:把value追加到field里面去,field一定要是数组类型才行,如果field不存在,会新增一个数组类型加进去。
     Push(new Comment { Text = "SomeText" })
4、PushAll:同$push,只是一次可以追加多个值到一个数组字段内。
5、PushAll(new Comment { Text = "SomeText" },new Comment { Text = "SecondComment" })
6、AddToSetOperation:增加一个值到数组内,而且只有当这个值不在数组内才增加。
7、Pull:从数组field内删除一个等于value值
8、Pop:删除数组内的一个值
9、PullAll:同$pull,可以一次删除数组内的多个值。

三、配置文件
 将harry.config文件放在项目根目录

<?xml version="1.0" encoding="utf-8" ?>
<root>
  <mongo>
      <key model="default" dbname="test" server="127.0.0.1:27017" />
      <key model="Harry.Service.Model.Test" dbname="test" server="" />
  </mongo>
</root>

model:每个实体类对应一个数据库连接地址,如果系统找不到则默认选择 default服务器地址
dbname:数据库名称

四、下载Harry.Mongodb

点击下载

Linux安装Mongodb及配置