我有一个像这样的对象结构:
{
name: "...",
pockets: [
{
cdate: "....",
items: [...]
}
...
]
}
在更新操作中,我想在最后一个 pocket 项目的 items 字段中添加一些记录。使用点符号是我知道访问子文档的唯一方法,但我无法得到我想要的。所以,我正在寻找类似的东西:
是否可以修改最后一个元素?如果是,怎么样?
答案 0 :(得分:3)
我不知道使用单行查询的方法。但您可以选择记录,更新然后保存。
var query = <insert query here>;
var mydocs = db.mycollection.find(query);
for (var i=0 ; i<mydocs.length ; i++) {
mydocs[i].pockets[pockets.length-1].items.push('new item');
db.mycollection.save(mydoc);
}
答案 1 :(得分:3)