使用以下内容:
class A
{
...
List<B> L;
}
class B
{
string Id;
string S;
}
我试图在A.L中做一个B对象的upsert,但是以B.Id为关键。
现在,如果我在更新中执行AddToSet,如果B中的任何字段与已存在的字段不同,我将在L数组中获得一个额外的对象。
AddToSet将考虑:
B: { Id: "3", S: "1" }
B: { Id: "3", S: "2" }
作为两个不同的对象
因此,我可以将ALAny(x =&gt; x.Id ==&#34; 1&#34;)添加到搜索中,然后在更新中执行一个设置,但这将替换一个对象,如果没有找到,请不要插入。
我试图在一次调用中找到如何在数组中进行upsert,因为它需要在我的结尾处是原子的。
我该怎么做?
澄清:
如果我有以下数据:
{
L :
[
{ Id: "1", S: "A" }
]
}
我要upsert:{Id:&#34; 2&#34;,S:&#34; B&#34; }
我希望结果是:
{
L :
[
{ Id: "1", S: "A" },
{ Id: "2", S: "B" }
]
}
然后如果我upsert:{Id:&#34; 2&#34;,S:&#34; C&#34; } 我希望输出为:
{
L :
[
{ Id: "1", S: "A" },
{ Id: "2", S: "C" }
]
}