MongoDb 和 F#:如何 select 不同的值?

MongoDb and F#: How to select distinct values?

我正在使用最新的(在撰写本文时)版本 (2.8) 的 C# MongoDb 驱动程序。 我在 F# 中使用它。 我想 select 集合中某个字段的不同值。

开始,以下内容不起作用:

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> 不兼容。

this answer开始,下面的也不行

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

在 C# 中,您可以将字符串隐式转换为 FieldDefinition<T>class implements implicit operator). Since types conversion works in a different way in F# you can use StringFieldDefinitionClass

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