相关疑难解决方法(0)

如何使用C#驱动程序更新MongoDB中数组子文档中包含的数组子文档中的字段?

我在MongoDB中有一个文档集合,其结构如下(有多个容器文档,每个包含Sessions,每个会话包含1个Order,每个Order包含多个Items):

{
  "Sessions" : [{
      "ID" : "1882a092-d395-45d1-b36b-e2fa3df81b95",
      "Order" : {
        "Items" : [{
            "_id" : "a9c94a5e-10ef-433d-9c63-f4555eb7c2a7",
            "Title" : "UPDATE THIS",
          }]
      }
    }],
  "_id" : "1b640bc4-fdb4-49b1-9c60-e4c6f1bd0405"
}
Run Code Online (Sandbox Code Playgroud)

我想在知道项目的时候更新会话Title中的给定内容(如果有帮助,我也知道会话的ID):Item_id

我尝试过以下方法:

col.Update(Query.EQ("Sessions.ID", sessionID),
                Update.Set("Sessions.$.Order.Items.Title", newTitle));

col.Update(Query.EQ("Sessions.Order.Items._id", id),
                Update.Set("Sessions.Order.Items.$.Title", newTitle));
Run Code Online (Sandbox Code Playgroud)

两者都抛出异常WriteConcern detected an error 'cannot use the part (Sessions of Sessions.Order.Items.0.Status) to traverse the element ....我也尝试过使用组合查询的不同组合,这些组合Query.And可能没什么意义,因为它们不值得在这里发布.

如何使用C#驱动程序更新文档数组中包含的子文档中的字段?

我意识到单独使用位置运算符不能做到这一点(并且位置运算符不会神奇地匹配内部数组).

我正在寻找开箱即用的解决方案如何在不更改架构的情况下完成此类更新.

c# mongodb

2
推荐指数
1
解决办法
2164
查看次数

标签 统计

c# ×1

mongodb ×1