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