gpt4 book ai didi

C# MongoDB - 编辑嵌套 2 层的数据

转载 作者:可可西里 更新时间:2023-11-01 10:47:27 25 4
gpt4 key购买 nike

让我们想象一下这个数据:

class A
{
string Id_A;
int MyInt;
}

class B
{
...
string Id_B;
List<A> MyListA;
}

class C
{
...
string Id_C;
List<B> MyListB;
}

我有一个包含对象 C 的 Mongo 集合

更新列表是否可能/语法是什么:

通过Id_C找到一个对象C,然后通过MyList列表中的Id_B找到正确的B对象,然后通过Id_A找到合适的A对象并替换 A:MyInt

搜索的 Linq 等价物是:

var Q = from c in CList where c.Id_C == "..."
from b in c.MyListB where b.Id_B == "..."
from a in b.MyListA where a.Id_A == "..."
select a.MyInt;

但是这个:

    var Q = from c in Driver.AsQueryable() where c.Id_C == "c0"
from b in c.MyListB where b.Id_B == "b0"
from a in b.MyListA where a.Id_A == "a1" select a.MyInt;

return q.First();

不起作用并出现此错误:

System.NotSupportedException: '$project or $group does not support {document}.

最佳答案

MongoDB 外壳:

db.collection.update({Id_C:'...', "MyListB.Id_B":'...' , "MyListB.MyListA.Id_A":'...'},{$set:{"MyListB.$.MyListA.0.MyInt":<number>}})

collection 是您的 C 对象集合。

此外,由于您使用的是 3.6,您可以使用 expressive updates .

关于C# MongoDB - 编辑嵌套 2 层的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48836773/

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