2

我知道这个问题之前已经回答过了,但由于某种原因,没有一个解决方案对我有帮助。所以我想寻求一些帮助,看看你是否能发现我做错了什么。我运行了 nedb 和一个看起来像这样的 .db 文件(删除了一些属性以使其更清晰):

{
    "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}');
    });
});

如果我更改了一个不在 stores 数组中的属性(如“name”:“Haj”),它就会起作用。使用:

{$set:{"name":"this works"}}

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

4

1 回答 1

1

谢谢!正如 Neil Lunn 所指出的,它不受支持。我们通过检索数据进行了解决,然后通过代码对其进行修改,然后使用修改后的数据更新文档。

于 2014-06-26T04:59:33.940 回答