MongoDb и F #: как выбрать разные значения? - PullRequest
1 голос
/ 13 апреля 2019

Я использую последнюю (на момент написания) версию (2.8) драйвера C # MongoDb. Я использую это от F #. Я хочу выбрать отдельные значения поля в коллекции.

С этот старый вопрос , следующее не работает:

let client = new MongoClient(connString)
let db = client.GetDatabase("AirQuality")
let col = db.GetCollection<ReadingValue>("ReadingValue")
let res = col.DistinctAsync<string>("SensorName","{}")

Тип string не совместим с типом FieldDefinition<ReadingValue,string>.

Из этого ответа , следующее также не работает

let fd : FieldDefinition<ReadingValue, string> = "" :> FieldDefinition<ReadingValue, string>

1 Ответ

1 голос
/ 13 апреля 2019

В C # вы можете неявно конвертировать из строки в FieldDefinition<T> ( класс реализует неявный оператор). Поскольку преобразование типов в F # работает по-другому, вы можете использовать StringFieldDefinitionClass

let field = new StringFieldDefinition<ReadingValue, string>("SensorName")
let result = col.Distinct<string>(field, Builders<ReadingValue>.Filter.Empty)
...