在nedb中更新数组元素

时间:2014-06-25 10:51:41

标签: mongodb nedb

我知道之前已经回答了这个问题,但由于某种原因,没有一个解决方案能帮到我。所以我想请求一些帮助,看看你能否发现我做错了什么。我有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"}}

我希望有人能够帮助我:)。

1 个答案:

答案 0 :(得分:0)

谢谢!正如Neil Lunn所指出的,它不受支持。我们通过检索数据,然后通过代码修改数据,然后使用修改后的数据更新文档来制定解决方法。