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

时间:2019-04-13 12:43:54

标签: mongodb f# mongodb-.net-driver

我正在使用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>

1 个答案:

答案 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)