【问题标题】:Updating Embedded Array MongoDB/C#更新嵌入式数组 MongoDB/C#
【发布时间】:2013-12-15 18:58:39
【问题描述】:

我有一个有趣的场景,我在 Mongo 文档中有一个 2 级嵌入式数组,但我似乎无法找到一种方法来更新 2 级内的元素。我已经尝试过 ElemMatch,但它似乎不起作用。

我有一个 Product 文档,它有一个 Attributes 数组。此属性数组有多个选项。前任。产品可以是一件 T 恤,具有尺寸、颜色属性。每个属性都可以有选项。例如Size 有 XS、S、M、L 选项。现在我希望能够在给定 OptionId(和/或 Attribute Id)的情况下更新 size 选项。

这是我的 Mongo 文档的样子:

{
 "Attributes" : [{
  "_id" : ObjectId("52adf86912a4590a3cb322a5"),
  "Name" : "Size",
  "LabelText" : "Select your T-Shirt Size",
  "Description" : "This is the Size of the T-Shirt",
  "ShowOnDisplay" : true,
  "Options" : [{
      "_id" : ObjectId("52adf86912a4590a3cb322a6"),
      "Name" : "XS",
      "Value" : "XS"
    }, {
      "_id" : ObjectId("52adf86912a4590a3cb322a7"),
      "Name" : "S",
      "Value" : "S"
    }],
  "DateCreatedUtc" : new Date("12/15/2013 10:43:53"),
  "DateModifiedUtc" : new Date("12/15/2013 10:43:53")
}],
"AvailableEndTimeUtc" : null,
"AvailableStartTimeUtc" : null,
"Name" : "CMR Dazzle T-Shirt ",
"Price" : {
"Value" : "25",
"Currency" : "USD"
},
"Sku" : "SKU7fb3a",
 "_id" : ObjectId("52adf86912a4590a3cb322a4")
}

在上面的示例中,我想将 XS 更新为“X-Small”。我有可用的属性 ID 和选项 ID。

我尝试过使用 ElemMatch,我尝试过简单的 Query.EQ("Attributes.Options._id"),然后使用更新,但没有任何效果。与此类似,我还想删除一个给定 id 的选项。

我将不胜感激任何帮助。

【问题讨论】:

    标签: c# mongodb mongodb-.net-driver


    【解决方案1】:

    我想你想做的和正在讨论的here是一样的。这目前在 Mongo 中是不可能的,请参阅JIRA

    【讨论】:

      猜你喜欢
      • 2021-06-17
      • 1970-01-01
      • 2020-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-18
      相关资源
      最近更新 更多