2016-03-01 86 views
4

我想從MongoDB中的字段中獲取不同的值。我在Syntax中遇到了麻煩。使用mongoshell這是比較容易做到,這是我的查詢運行:C#MongoDB獨特的查詢語法

db.cmstest.distinct("categories") 

該查詢返回一個字符串的所有不同值的數組。

現在我正在嘗試使用最新的官方MongoDB驅動程序來獲得正確的語法,但沒有取得太大的成功。這是我的代碼,這是不成功的:

var categoriesList = await blogContext.Articles.DistinctAsync<List<string>>("categories", ""); 

你要知道的類別是List<string>

任何人都可以幫助擺脫一些光?我已經嘗試在文檔和在線中查找,並且沒有發現太多內容。

預先感謝您。

回答

5

你可以試試下面的辦法:

var filter = new BsonDocument(); 
var categoriesList = await blogContext.Articles.DistinctAsync<string>("categories", filter); 
+1

我寧願'DistinctAsync '而不是'DistinctAsync '因爲它比嚴格的類型轉換更安全。只是我的兩分錢。否則,解決方案很好。 – Saleem

+0

@Saleem我同意,儘管解決方案來自OP的角度,他們期待一個獨特的字符串列表。 – chridam

+0

非常感謝您的回答。我用這個,基於你說的:var categoriesList = await blogContext.Articles.Distinct (「categories」,「{}」)。ToListAsync();' –