f#使用记录在MongoDB上插入
我已经尝试了一段时间,只使用记录在MongoDB上插入,但没有成功 我的问题是,我想创建一个简单的插入函数,我发送一个泛型类型,然后将其插入数据库 像这样f#使用记录在MongoDB上插入,mongodb,f#,Mongodb,F#,我已经尝试了一段时间,只使用记录在MongoDB上插入,但没有成功 我的问题是,我想创建一个简单的插入函数,我发送一个泛型类型,然后将其插入数据库 像这样 let insert (value: 'a) = let collection = MongoClient().GetDatabase("db").GetCollection<'a> "col" collection.InsertOne value 那么,是否有人能想出解决这个问题的方法,或者我必须使用一个类
let insert (value: 'a) =
let collection = MongoClient().GetDatabase("db").GetCollection<'a> "col"
collection.InsertOne value
那么,是否有人能想出解决这个问题的方法,或者我必须使用一个类
// Works!!!
type t5() =
member val Id = ObjectId.Empty with get, set
member val Name = "" with get, set
还有,有人知道为什么当C#MongoDB库翻译可变表时,他会在末尾使用@获得属性吗?
我可以将我的所有属性设置为可变,尽管这不是我的第一选择,但让他在DB上创建多个属性是非常糟糕的。您可以尝试使用(并且没有
可变的
字段)注释您的记录
@
s最终出现在数据库中,因为MongoDB使用反射和F#使用备份字段fieldName@
实现了mutable
?NET驱动程序?有点让人困惑,你在问什么,试图弄清楚你是想让一个ObjectId
值自动分配给一个存储为“Id”
的字段,还是仅仅意味着“\u Id”
会自动添加。我使用的是默认的MongoDB C驱动程序。我的意思是应该自动添加“_id”,但如果您使用记录,则不会自动添加“_id”,因为没有设置,如果他在插入数据库之前更改值,这很有意义,这是一种错误的做法,因为如果你使用记录,它将不起作用。我认为使用CLIMutable与将我的所有属性设置为mutable是一样的,但事实证明并非如此。在我的情况下,MongoDB驱动程序仍然不允许ID为null。因为我没有看到任何其他的f#开发者面临与我相同的问题,所以我在这里真的是在未知的水域航行。我猜每个人都在做我现在正在做的事情,使用的类在与C#库接口时工作得非常好。谢谢你的帮助。看起来这篇博客文章展示了
// Works!!!
type t5() =
member val Id = ObjectId.Empty with get, set
member val Name = "" with get, set