我想更改data
group
元素
{
"_id" : "wLXDvjDvbsxzfxabR",
"group" : [
{
"title" : "title 1",
"data" : [
{
"note" : "text"
}
]
},
{
"title" : "title 2",
"data" : [
{
"note 1" : "text"
},
{
"note 2" : "text"
},
{
"note 3" : "text"
}
]
}
]
}
这就是我正在做的,但它给了我一个错误的结果:
var setObject = { group.2.data.3: { 'new note': 'new text'} }
Collection.update(
{ _id: 'wLXDvjDvbsxzfxabR' },
{ $set: setObject }
);
通过这个新元素被添加到组中 - 这不是我想要的:
{
"data" : {
"3": {
"note" : "text"
}
}
}
我只想将对象{ "note 3": "text" }
设置/更新为{ 'new note': 'new text'}
并保持结构不变。
结果应为
{
"_id" : "wLXDvjDvbsxzfxabR",
"group" : [
{
"title" : "title 1",
"data" : [
{
"note" : "text"
}
]
},
{
"title" : "title 2",
"data" : [
{
"note 1" : "text"
},
{
"note 2" : "text"
},
{
"new note" : "new text"
}
]
}
]
}
答案 0 :(得分:1)
数组是零索引的,所以:
- {hostname: router123, example: no ip cef}
正如Mongodb's doc所说:
要通过从零开始的索引位置访问数组元素, 将数组名称与点(。)和从零开始的索引连接起来 位置,用引号括起来:
var setObject = { 'group.1.data.2': { 'new note': 'new text'} }