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

パス'_id'で更新を実行すると、不変フィールド'_id'が変更されます

    更新する必要があるのは1つのInventoryだけのようです 記録。簡単にこれを行うことができます:

    app.put("/api/inventory/:sku", (req, res, next) => {
      return Inventory.updateOne(
        { sku: req.params.sku },  // <-- find stage
        { $set: {                // <-- set stage
           id: req.body.id,     // <-- id not _id
           sku: req.body.sku,
           total_qty: req.body.total_qty,
           current_qty: req.body.current_qty
          } 
        }   
      ).then(result => {
        res.status(200).json({ message: "Update successful!" });
      });
    });
    

    新しいInventoryを作成する必要はありません 必要なのはskuに基づいて既存のものを更新することだけなので

    updateOne に関するその他のドキュメントは次のとおりです。



    1. 3レベルのMongoDBネストルックアップ

    2. MongoDB:サーバーに起動警告があります

    3. MongoDBトランザクションを使用するための要件

    4. ドット表記と$elemMatch