C#MongoDB独特查询语法

C#MongoDB独特查询语法,c#,mongodb,distinct,distinct-values,C#,Mongodb,Distinct,Distinct Values,我试图从MongoDB中的字段中获取不同的值。我的语法真的有问题。使用mongoshell相对容易,这是我运行的查询: db.cmstest.distinct("categories") 此查询返回包含所有不同值的字符串数组 现在,我正在使用最新的官方MongoDB驱动程序尝试正确的语法,但没有取得多大成功。这是我的代码,不成功: var categoriesList = await blogContext.Articles.DistinctAsync<List<string>

我试图从MongoDB中的字段中获取不同的值。我的语法真的有问题。使用mongoshell相对容易,这是我运行的查询:

db.cmstest.distinct("categories")
此查询返回包含所有不同值的字符串数组

现在,我正在使用最新的官方MongoDB驱动程序尝试正确的语法,但没有取得多大成功。这是我的代码,不成功:

var categoriesList = await blogContext.Articles.DistinctAsync<List<string>>("categories", "");
var-categoriesList=wait-blogContext.Articles.DistinctAsync(“categories”和“”);
注意,分类是一个
列表

谁能帮我解释一下吗?我试着在文档和网上查找,但没有找到多少


提前感谢。

您可以尝试以下方法:

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

更好的是,您可以使用lambda表达式来实现类型安全

例如:


等待这个.Collection.DistinctAsync(flow=>flow.timestadate,new BsonDocument())

我更喜欢
DistinctAsync
而不是
DistinctAsync
,因为它比严格的类型转换更安全。只要我的两分钱。否则,这是一个很好的解决方案。@Saleem我同意,不过解决方案是从OP的角度来的,他们希望得到一个清晰的字符串列表。非常感谢您的回答。基于您所说的,我使用了这个:
var-categoriesList=await-blogContext.Articles.Distinct(“categories”,“{}”).tolistsync()