我对 MongoDB 很陌生,我需要对我的集合进行一些复杂的更新操作。
我有这样的收藏:
[
{
"Id": 1,
"extension": [
{
"keyName": "Name",
"value": "Bob"
},
{
"keyAge": "Age",
"value": 20
}
]
},
{
"Id": 2,
"extension": [
{
"keyName": "Name",
"value": "Sam"
},
{
"key": "Name",
"value": "Sam"
}
]
},
{
"Id": 3,
"extension": [
{
"keyName": "Age",
"value": 25
},
{
"key": "Age",
"value": 25
}
]
},
{
"Id": 4
}
]
我想更新extension所有文档数组中的任何项目
以便在找到具有key属性的项目时,将其重命名keyAge。
这是预期的结果:
[
{
"Id": 1,
"extension": [
{
"keyName": "Name",
"value": "Bob"
},
{
"keyAge": "Age",
"value": 20
}
]
},
{
"Id": 2,
"extension": [
{
"keyName": "Name",
"value": "Sam"
},
{
"keyAge": "Name",
"value": "Sam"
}
]
},
{
"Id": 3,
"extension": [
{
"keyName": "Age",
"value": 25
},
{
"keyAge": "Age",
"value": 25
}
]
},
{
"Id": 4
}
]
我尝试以$rename与此问题类似的方式使用:
MongoDB rename database field within array
but I get the same error$rename source may not be dynamic array
我认为这个解决方案也可能适用于我,我尝试使用它,但它并没有更新我的任何东西,所以我想我无法理解如何将这个答案应用于我...... https://stackoverflow.com/a/49193743 /215553
谢谢您的帮助!