我正在尝试通过 c# 驱动程序在 mongodb 的更新查询中使用 $push
。
Update.Push(...)
方法需要一个字符串名称(这很好)和一个要“推送”的 BsonValue。这是我遇到问题的地方。我正在尝试将非简单类型推送到字段的数组。
例如:{ $push : { "arrayfield": { "a": 7, "b": 12 } } }
这在 Mongo 控制台中运行良好,但我不知道如何将我的对象变成 BsonValue。我试过 BsonValue.Create(myObjectInstance)
但这给了我一个错误,说 .NET 类型不能映射到 BsonValue。
我错过了一些简单的东西吗?
最佳答案
我知道两种方法:
Update.PushWrapped<MyObject>("arrayfield", myObjectInstance);
//c#驱动>= 1.0或将您的类(class)转换为
BsonValue
自己通过ToBsonDocument()
扩展方法。Update.Push("arrayfield", myObjectInstance.ToBsonDocument());
关于c# - MongoDB C# 驱动程序中的 BsonValue 和自定义类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7732663/