sql >> データベース >  >> NoSQL >> MongoDB

Node.js-Mongoose-ネストされた配列をreq.bodyのすべての値で更新します

    $を使用する必要があります $setの位置演算子 。 req.bodyの内容に基づいて、これらのプロパティを動的に割り当てるため 、$setを作成する必要があります プログラムで。

    名前を更新する場合は、次のようにします。

    Location.update(
      { 'competitors._id': req.params.competitorId },
      { $set:  { 'competitors.$.name': req.body.name }},
      (err, result) => {
        if (err) {
          res.status(500)
          .json({ error: 'Unable to update competitor.', });
        } else {
          res.status(200)
          .json(result);
        }
     }
    );
    

    プログラムで$setを作成する1つの方法 req.bodyを使用する 次のことを行います:

    let updateObj = {$set: {}};
    for(var param in req.body) {
      updateObj.$set['competitors.$.'+param] = req.body[param];
     }
    

    これ をご覧ください 詳細については回答してください。



    1. MongoDBバウンドクエリ:マイルをラジアンに変換するにはどうすればよいですか?

    2. mongooseを使用して生のmongoDBコマンドを実行する方法は?

    3. mongodbはCAP定理のどこに立っていますか?

    4. MongoDB LinQ Selectメソッドは、実際にはフィールドのサブセットのみを取得しますか?