2016-03-01 38 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();' –