c# - MongoDB 推送到空数组

标签 c# mongodb mongodb-.net-driver

所以今天我意识到我在更新/推送到数组时遇到问题。我在一个类中有一个数组,它只是一个自动属性

public List<things> Things { get; set; }

这可以作为 null 放入数据库中,如果我稍后需要编写类似的查询

var query = Query.EQ("_id", something.Id);
var update = Update.Push("Things", thing.ToBsonDocument());

coll.Update(query, update);

我现在遇到了一个问题,因为我的更新将引发一个异常,我试图将其推送到 NULL 数组。

我通过在类(class)中放置一个私有(private)支持者解决了这个问题

private List<things> _things = new List<things>();
public List<things> Things { get { return _things;} set { _things = value;} }

现在至少一个新实例将有一个空数组,并且有人需要明确地说

Things = null

但是我想知道是否有更好的方法来解决这个问题。装饰师?蒙戈指数?有话要说,嘿这个字段必须始终是一个数组。

我一直对自动属性持怀疑态度,并且更喜欢使用私有(private)支持者,尤其是对于非基元。只是想知道 Mongo 引擎中是否存在内置的更强大的解决方案。

最佳答案

如果您更喜欢使用自动属性,您可以简单地让构造函数创建空列表。

public YourClass() 
{
   Things = new List<things>();
}

然后 auto 属性就可以简单地工作,唯一丑陋的地方就是构造函数。

这就是我所做的

关于c# - MongoDB 推送到空数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25022764/

相关文章:

c# - 如何从数组中获取所有可能的组合?

c# - 实体数据网格: best way to add computed values?

linux - 为什么我的 mongodb 连接不到 28017 端口?

c# - 如何从 C# 调用 MongoDb 中存储的 JavaScript

c# - 使用官方 c# 驱动程序在 mongodb 中保存具有双向关系的对象

c# - 如何使用属性的依赖注入(inject)?

c# - 将值从字符串转换为 Guid 或 int 的泛型类型

mongodb - 当案例类包含 Scala 枚举时,如何使用 Rogue 和 MongoCaseClassField 更新 mongo 记录

javascript - Mongoose递归查询父引用

mongodb - 使用 C# 仅获取 MongoDB 中的指定字段