我知道之前已经回答了这个问题,但由于某种原因,没有一个解决方案能帮到我。所以我想请求一些帮助,看看你能否发现我做错了什么。我有nedb运行和.db文件,看起来像这样(删除了一些attributs,使其更清晰):
{
"name":"Haj",
"members": [{"id":"x","name":"x"}],
"shops": [{"id":"123","name":"shopname","category":"xyz"}],
"_id":"XXXXX"
}
我想要做的是在一个商店中编辑一个属性,例如名称。我试过这个似乎是我经常看到的解决方案。但由于某种原因,它对我不起作用。
router.put('/vote', function(req, res) {
//hardcoded testing
req.db.groups.update(
{"_id": "XXXXX", "shops.id": "123"},
{$set:{"shops.$.name":"why wont you work"}},
function(err, items){
res.contentType('application/json');
res.send('{"success":true}');
});
});
如果我更改不在商店数组中的属性(例如“name”:“Haj”),它就有效。使用:
{$set:{"name":"this works"}}
我希望有人能够帮助我:)。
答案 0 :(得分:0)
谢谢!正如Neil Lunn所指出的,它不受支持。我们通过检索数据,然后通过代码修改数据,然后使用修改后的数据更新文档来制定解决方法。