2

これは以前に回答されたことを知っていますが、何らかの理由で解決策がどれも役に立ちませんでした。ですから、助けを求めて、私が間違っていることを見つけられるかどうかを確認したいと思います. nedb を実行していて、次のような .db ファイルがあります (わかりやすくするためにいくつかの属性を削除しています)。

{
    "name":"Haj",
    "members": [{"id":"x","name":"x"}],
    "shops": [{"id":"123","name":"shopname","category":"xyz"}],
    "_id":"XXXXX"
}

私がやりたいのは、名前など、1 つのショップの 1 つの属性を編集することです。私はこれを試しましたが、これは私がよく目にする解決策と思われます。しかし、何らかの理由でそれは私にはうまくいきません。

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"}}

誰かが私を助けてくれることを願っています:)

4

1 に答える 1

1

ありがとう!Neil Lunn が指摘したように、サポートされていません。データを取得してコードを変更し、変更されたデータでドキュメントを更新することで回避策を作成しました。

于 2014-06-26T04:59:33.940 に答える