MongoDB C# - 在列表中插入元素

时间:2018-03-05 14:34:49

标签: c# mongodb

使用以下内容:

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" }
    ]
}

0 个答案:

没有答案