我有一个包含嵌套数组的文档。我需要更新其位置是动态的嵌套数组对象的值。我需要将locators:id值:'obj1'更新为值:'obj2'。但是问题是这些定位器的位置不是静态的,它们将始终是动态的
App=EntityFramework"
我尝试通过硬编码这样的对象位置
App=EntityFramework;
请告诉我如何解决此问题。谢谢
预期投入
<add name="DefaultConnection" connectionString="data source=(local);initial catalog=NamSdb;persist security info=True;user id=sa;password=sa;MultipleActiveResultSets=True;App=EntityFramework;" providerName="System.Data.SqlClient" />
答案 0 :(得分:1)
我从问题中了解。
obj1的位置不固定。
(0-1-2)数组顺序,您不想写。
db.objectRepository.update(
{ "objectName.0.attributes.value" : "obj1" },
{ $set : { "objectName.0.attributes.$.value" : "obj2222" }},
{
multi: false,
}
)
“ objectName.0”。您可以在其中进行同样的操作。
db.objectRepository.update(
{ },
{ $set : { "objectName.$[element].attributes.$[velement].value" : "aa change" } },
{
multi: false,
arrayFilters : [
{ "element" : { "objectName.objectName" : "demoPage" }},
{ "velement" : { "objectName.attributes.value" : "aa" }}
]
}
)
这正是您想要的吗?
https://docs.mongodb.com/manual/reference/operator/update/positional-filtered/
即使这不是您想要的问题的答案,也绝对在此页面上。