MongoDB是一個介於關聯式資料庫和非關聯式資料庫之間的產品,是非關聯式資料庫當中功能最豐富,最像關聯式資料庫的。他支援的資料結構非常鬆散,是類似json的bjson格式,因此可以儲存比較複雜的資料類型。Mongo最大的特點是他支援的查詢語言非常強大,其文法有點類似於物件導向的查詢語言,幾乎可以實作類別似關聯式資料庫單表查詢的絕大部分功能,而且還支援對資料建立索引。
最近做的項目中打算使用。MongoDB C# / .NET Driver
很欣賞這個驅動的IMongoQuery,其中Query的設計很有意思。用法見下。
Query.All("name", "a", "b");//通過多個元素來匹配數組 Query.And(Query.EQ("name", "a"), Query.EQ("title", "t"));//同時滿足多個條件 Query.EQ("name", "a");//等於 Query.Exists("type", true);//判斷索引值是否存在 Query.GT("value", 2);//大於> Query.GTE("value", 3);//大於等於>= Query.In("name", "a", "b");//包括指定的所有值,可以指定不同類型的條件和值 Query.LT("value", 9);//小於< Query.LTE("value", 8);//小於等於<= Query.Mod("value", 3, 1);//將查詢值除以第一個給定值,若餘數等於第二個給定值則返回該結果 Query.NE("name", "c");//不等於 Query.Nor(Array);//不包括數組中的值 Query.Not("name");//元素條件陳述式 Query.NotIn("name", "a", 2);//返回與數組中所有條件都不匹配的文檔 Query.Or(Query.EQ("name", "a"), Query.EQ("title", "t"));//滿足其中一個條件 Query.Size("name", 2);//給定鍵的長度 Query.Type("_id", BsonType.ObjectId );//給定鍵的類型 Query.Where(BsonJavaScript);//執行JavaScript Query.Matches("Title",str);//模糊查詢 相當於sql中like -- str可包含Regex