Mongodb 更新nedb中的数组元素

Mongodb 更新nedb中的数组元素,mongodb,nedb,Mongodb,Nedb,我知道这个问题以前已经得到了回答,但出于某种原因,没有一个解决方案对我有帮助。所以我想寻求一些帮助,看看你是否能发现我做错了什么。我已经运行了nedb,并且有一个.db文件看起来像这样(删除了一些属性以使其更清晰): { “姓名”:“朝圣”, “成员”:[{“id”:“x”,“名称”:“x”}], “店铺”:[{“id”:“123”,“名称”:“店铺名称”,“类别”:“xyz”}], _id:“XXXXX” } 我想做的是编辑一个商店中的一个属性,例如名称。我已经试过了,这似乎是我经常看到的解

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

{
“姓名”:“朝圣”,
“成员”:[{“id”:“x”,“名称”:“x”}],
“店铺”:[{“id”:“123”,“名称”:“店铺名称”,“类别”:“xyz”}],
_id:“XXXXX”
}
我想做的是编辑一个商店中的一个属性,例如名称。我已经试过了,这似乎是我经常看到的解决方案。但出于某种原因,它对我不起作用

router.put('/vote',函数(req,res){
//硬编码测试
req.db.groups.update(
{u id:“XXXXX”,“shops.id:“123”},
{$set:{“shops.$.name”:“你为什么不工作”},
功能(错误、项目){
res.contentType('application/json');
res.send(“{”success:true}”);
});
});
如果我更改了一个不在shops数组中的属性(比如“name”:“Haj”),它就会起作用。使用:

{$set:{“name”:“this works”}

我希望有人能帮助我:)

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

nedb不支持位置运算符。如果选中err参数,您实际上会看到字段名中不支持
$
的错误。