我正在使用C#MongoDb驱动程序的最新版本(在撰写本文时)(2.8)。 我正在使用F#。 我想选择集合中字段的不同值。
在this old question中,以下操作无效:
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>
答案 0 :(得分:1)
在C#中,您可以从字符串隐式转换为FieldDefinition<T>
(class实现隐式运算符)。由于类型转换在F#中的工作方式不同,因此您可以使用StringFieldDefinitionClass
let field = new StringFieldDefinition<ReadingValue, string>("SensorName")
let result = col.Distinct<string>(field, Builders<ReadingValue>.Filter.Empty)