2016-03-01 6 views
4

Я пытаюсь получить различные значения из поля в MongoDB. У меня настоящие проблемы с синтаксисом. Использование mongoshell это относительно легко сделать, это запрос я бегу:C# MongoDB Distinct Query Syntax

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 = ожидание blogContext.Arts.Distinct (" categories "," {} "). ToListAsync();' –