string name="abc";
var wheres = Builders<T>.Filter.Exists("unique_id");
// 邏輯或 | 邏輯與& 根據實際邏輯判斷
if (!string.IsNullOrEmpty(name))
wheres = wheres & (Builders<T>.Filter.Regex("name", new BsonRegularExpression(new Regex(name, RegexOptions.IgnoreCase)))) | Builders<T>.Filter.Regex("other.name", new BsonRegularExpression(name));
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)擷取源碼。