string name="abc";
var wheres = Builders
// 逻辑或 | 逻辑与& 根据实际逻辑判断
if (!string.IsNullOrEmpty(name))
wheres = wheres & (Builders
Filter.All("name", "a", "b");//通过多个元素来匹配数组
Filter.And(Query.EQ("name", "a"), Query.EQ("title", "t"));//同时满足多个条件
Filter.EQ("name", "a");//等于
Filter.Exists("type", true);//判断键值是否存在
Filter.GT("value", 2);//大于>
Filter.GTE("value", 3);//大于等于>=
Filter.In("name", "a", "b");//包括指定的所有值,可以指定不同类型的条件和值
Filter.LT("value", 9);//小于<
Filter.LTE("value", 8);//小于等于<=
Filter.Mod("value", 3, 1);//将查询值除以第一个给定值,若余数等于第二个给定值则返回该结果
Filter.NE("name", "c");//不等于
Filter.Nor(Array);//不包括数组中的值
Filter.Not("name");//元素条件语句
Filter.NotIn("name", "a", 2);//返回与数组中所有条件都不匹配的文档
Filter.Or(Query.EQ("name", "a"), Query.EQ("title", "t"));//满足其中一个条件
Filter.Size("name", 2);//给定键的长度
Filter.Type("_id", BsonType.ObjectId );//给定键的类型
Filter.Where(BsonJavaScript);//执行JavaScript
Filter.Matches("Title",str);//模糊查询 相当于sql中like -- str可包含正则表达式
.........(大家可以自己去试一下,有些是从别的地方copy过来)
源码非编译器状态修改,如有问题可留言。或者微信(plit001)获取源码。