c# - MongoDB C# 驱动程序中的 BsonValue 和自定义类

标签 c# mongodb mongodb-.net-driver

我正在尝试通过 c# 驱动程序在 mongodb 的更新查询中使用 $push

Update.Push(...) 方法需要一个字符串名称(这很好)和一个要“推送”的 BsonValue。这是我遇到问题的地方。我正在尝试将非简单类型推送到字段的数组。

例如:{ $push : { "arrayfield": { "a": 7, "b": 12 } } }

这在 Mongo 控制台中运行良好,但我不知道如何将我的对象变成 BsonValue。我试过 BsonValue.Create(myObjectInstance) 但这给了我一个错误,说 .NET 类型不能映射到 BsonValue。

我错过了一些简单的东西吗?

最佳答案

我知道两种方法:

  1. Update.PushWrapped<MyObject>("arrayfield", myObjectInstance);//c#驱动>= 1.0

  2. 或将您的类(class)转换为 BsonValue自己通过 ToBsonDocument()扩展方法。

    Update.Push("arrayfield", myObjectInstance.ToBsonDocument());

关于c# - MongoDB C# 驱动程序中的 BsonValue 和自定义类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7732663/

相关文章:

c# - 如何在MongoDB的FindOne中使用SetField For C# Driver

c# - 动态改变CSS

C# : Serialize objects to XML without reflection

node.js - Mongoose 使用 SSL digital ocean 与 CA_CERT 连接

node.js - mongodb近似字符串匹配

mongodb - 如何使用 c# 在 mongodb 中增加一个字段

c# - MongoDB c# Update.PushWrapped,怎么用?

c# - 如何使用 Union 在 LINQ 中以匿名类型分配可为 null 的 int 属性?

c# - 无论 C# 中的条件如何,字符串的值都设置为 null

mongodb - 为什么这个简单的 MongoDB 查询有这么多 nYield?