2013-12-15 65 views
0

我有一个有趣的场景,我有一个Mongo文档中的2级嵌入式数组,我似乎无法找出更新第二级内的元素的方法。我试过ElemMatch,但它似乎没有工作。更新嵌入式数组MongoDB/C#

我有一个产品文档,它有一个Attributes数组。该属性数组有多个选项。防爆。产品可以是T恤,具有尺寸,颜色。每个属性都可以有选项。对于例如大小有选项XS,S,M,L。现在我希望能够根据OptionId(和/或属性ID)更新大小选项。

这里是我的蒙戈文件看起来像:

{ 
"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-小”。我有属性ID和可用的选项ID。

我试过使用ElemMatch,我试过简单的Query.EQ(“Attributes.Options._id”),然后使用更新,没有任何工作。与此类似,我还想删除给定ID的选项。

我非常感谢这里的任何帮助。

回答

1

我认为你想要做的就是讨论here。这在Mongo中目前是不可能的,请参阅JIRA