Samus驱动中的Document条件

今天要说一个东西就是Samus驱动里的 Document  和他的一个子类 Op

在Samus驱动的增删改查方法中都有这类的参数传递..

大致的使用方法是这样..

MongoU.Find<Person>(new Document().Add("Age",1));

这是查询Person表中Age==1 的数据..

但是这有个问题..那就是不知道Document如何传递 类似   Age>20  或者  Age<>20 之类的条件..

直到后来我发现了Op对象.. 他继承于 Document ..

其中提供了很多像大于.. 小于.. 不等于之类的操作..

Op对象包含方法列表: 

        public static Op operator !(Op op);        //不会用,请高手指点
        public static Op operator &(Op op1, Op op2);    //不会用,请高手指点

        public static Op All<T>(params T[] values);           //全部
        public static Op Exists();                    //要求存在
        public static Op GreaterThan<T>(T value);            //大于
        public static Op GreaterThanOrEqual<T>(T value);        //大于等于
        public static Op In<T>(params T[] values);              //被包含于  形同Sql里的in
        public static Op LessThan<T>(T value);                  //小于
        public static Op LessThanOrEqual<T>(T value);            //小于等于
        public static Op Mod(int denominator, int result);       //于两数中间
        public static Op NotEqual<T>(T value);                  //不等于
        public static Op NotExists();                         //要求不存在
        public static Op NotIn<T>(params T[] values);            //要求不被包含于
        public static Op Size(int size);                    //长度
        public static Op Type(BsonType bsonType);              //类型
        public static Op Where(string javascript);        //不会用..有高手看到请指点..    

有了Op对象之后..要查询 Age>20的数据..代码就要这么写了..

MongoU.Find<Person>(new Document().Add("Age", MongoDB.Op.GreaterThan(20)));

剩下的就是灵活运用以上的这些东西..相信已经能够满足平常系统的需要了..

原文地址:https://www.cnblogs.com/iiwen/p/4889688.html