1
我知道這已經被回答過,但由於某種原因,沒有任何解決方案對我有所幫助。所以我想請求一些幫助,看看能否發現我做錯了什麼。我有nedb運行,並且看起來像這樣一個.db文件(除去少數attributs,以使其更清晰):在nedb中更新數組元素
{
"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"}}
我希望有人能夠幫助我:)
位置運算符不受nedb支持。如果您檢查了err參數,您實際上會看到關於在字段名稱中不支持'$'的錯誤。 –