插入嵌套数组使用C#Official Driver MongoDB

时间:2012-05-17 13:54:08

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

这是我的确切架构:

{
  "_id" : ObjectId("4fb4fd04b748611ca8da0d48"),
  "Name" : "Categories",
  "categories" : [{
      "_id" : ObjectId("4fb4fd04b748611ca8da0d46"),
      "name" : "Naming_Conventions",
      "sub-categories" : [{
          "_id" : ObjectId("4fb4fd04b748611ca8da0d47"),
          "name" : "Namespace_Naming",
          "standards" : []
        }]
    }]
}

正如你所看到的那样,我有一个名为“standards”的数组嵌套在那里。如何使用C#驱动程序以编程方式插入?我已经尝试了我在网上找到的所有例子,但没有一个是有效的。

1 个答案:

答案 0 :(得分:3)

如下所示。显然,如果其中任何一个都不存在,那么你将获得一个空引用异常。

var doc = collection.FindOne(Query.EQ("_id", new ObjectId("4fb4fd04b748611ca8da0d48")));

var standards = doc["categories"]
    .AsBsonArray[0]
    .AsBsonDocument["sub-categories"]
    .AsBsonArray;

standards.Add(new BsonDocument());

collection.Save(doc);