Samus驱动中的Document条件

时间:2024-04-26 15:05:57

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

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

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

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

这是查询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()));

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