【发布时间】:2020-01-09 16:51:01
【问题描述】:
如何查询所有有昵称的人并将昵称键替换为“nick”
数据集看起来像这样,有更多的字段和更多的文档。昵称 obj 如果存在,则在未知索引中。
{
_id: "robert",
properties: [
{
"kids": 3
},
{
"nickname": "Bob"
},
{
"age": 45
}
]
}
{
_id: "alice",
properties: [
{
"kids": 3
},
{
"age": 45
}
]
}
{
_id: "joseph",
properties: [
{
"nickname": "joe"
}
]
}
最后应该是:
{
_id: "robert",
properties: [
{
"kids": 3
},
{
"nick": "Bob"
},
{
"age": 45
}
]
}
{
_id: "alice",
properties: [
{
"kids": 3
},
{
"age": 45
}
]
}
{
_id: "joseph",
properties: [
{
"nick": "joe"
}
]
}
【问题讨论】:
-
一个棘手的问题!没有单个更新语句可以做到这一点。 $rename does not work if these fields are in array elements.。迭代和更新是最好的选择。 More info
标签: node.js mongodb mongodb-query