我正在尝试使用MongoDB C#驱动程序将项添加到BSON文档内的嵌套数组中。我搜索了SO,但到目前为止我找到的所有例子都没有达到我想要做的那样。
我有一个顶级"组织"在Mongo收集。它包含多个具有以下结构的Organization对象:
{
"id":"Org1",
"Name":"First Org",
"Divisions":[
{
"id":"Div1",
"Name":"First Division",
"UsersInDivision":[
"User1",
"User2"
]
}
]
}
我有以下POCO课程
public class Organization
{
public string Id { get; set; }
public string Name { get; set; }
public IList<Division> Divisions { get; set; }
}
public class Division
{
public string Id { get; set; }
public string Name { get; set; }
public IList<string> UsersInDivision { get; set; }
}
我想添加字符串&#34; User3&#34;分部&#34; Div1&#34;的UsersInDivision集合或组织&#34; Org1&#34;。实现这一目标的最佳方法是什么?我试图在可能的情况下使用强类型版本的MongoDB数据访问类。
答案 0 :(得分:4)
没有用于执行此类操作的类型化版本查询,您必须使用基于字符串的查询
var query = Query.And(Query.EQ("id", "Org1"), Query.EQ("Divisions.id", "Div1"));
collection.Update(query, Update.AddToSet("Divisions.$.UsersInDivision", "User3"));
您无法使用强类型版本的原因是$
运算符。
当前版本的mongodb c#驱动程序中没有$
。 check here