У меня есть интересный сценарий, в котором у меня есть 2-уровневый встроенный массив в Mongo Document, и я не могу найти способ обновить элементы внутри второго уровня. Я пробовал ElemMatch, но он, похоже, не работает.Обновление встроенного массива MongoDB/C#
У меня есть документ продукта, который имеет массив атрибутов. Этот массив атрибутов имеет несколько параметров. Ex. Продуктом может быть футболка с атрибутами «Размер», «Цвет». У каждого атрибута могут быть варианты. Напр. У размера есть опции XS, S, M, L. Теперь мне нужна возможность обновить параметр размера, заданный OptionId (и/или Идентификатор атрибута).
Вот как мой Монго документ выглядит следующим образом:
{
"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». У меня есть Идентификатор атрибута и Идентификатор параметра.
Я пробовал использовать ElemMatch, я пробовал простой Query.EQ («Attributes.Options._id»), а затем использовал обновление и ничего не работает. Подобно этому, я также хотел бы удалить опцию с учетом идентификатора.
Я почитаю любую помощь здесь.