gpt4 book ai didi

c# - 使用 MongoDB C# 驱动程序将项目添加到嵌套对象的嵌套数组

转载 作者:可可西里 更新时间:2023-11-01 09:12:22 24 4
gpt4 key购买 nike

我正在尝试使用 MongoDB C# 驱动程序将项目添加到 BSON 文档内的嵌套数组中。我已经搜索过 SO,但到目前为止我发现的所有示例都不符合我正在尝试做的事情。

我在 Mongo 中有一个顶级“组织”集合。这包含具有以下结构的多个组织对象:

{
"id":"Org1",
"Name":"First Org",
"Divisions":[
{
"id":"Div1",
"Name":"First Division",
"UsersInDivision":[
"User1",
"User2"
]
}
]
}

我有以下 POCO 类(class)

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; }
}

我想将字符串“User3”添加到部门“Div1”或组织“Org1”的 UsersInDivision 集合中。实现这一目标的最佳方法是什么?我正在尝试尽可能使用 MongoDB 数据访问类的强类型版本。

最佳答案

做这样的事情没有类型化的版本查询,你必须使用基于字符串的查询

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

关于c# - 使用 MongoDB C# 驱动程序将项目添加到嵌套对象的嵌套数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27929403/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com