簡體   English   中英

Mongoose - 快速服務器更新對象數組中的特定索引

[英]Mongoose - express server update specific index in array of objects

我已經創建了一個自定義identifier ID,我正在嘗試更新我的硬幣以及第一個數組 object 購買的 bool 為真。

這就是我的數據的樣子

[
    {
    
        "identifier": "123456789",
        "coins": 100,
        "equipments": [
            {
                "item": "itemname",
                "price": 100,
                "gold": 10,
                "level": 1,
                "condition": 100,
                "purchased": false
            },
            {
                "item": "itemname2",
                "price": 80,
                "gold": 8,
                "level": 1,
                "condition": 100,
                "purchased": false
            },
        ],
        "__v": 0
    }
]

這是我的更新路線

router.put("/update/:identifier", function(req,res){
  User.find({identifier: req.params.identifier}, function(err, equipment) {
    equipment.coins= 50;
    equipment[0].equipments.purchased = true;
  
    equipment[0].save(function (err) {
      if (err) {
        return res.status(400).send({
          message: errorHandler.getErrorMessage(err)
        });
      } else {
        res.json(equipment);
      }
    });
  });
 });

當我運行它時,什么也沒有發生,也沒有給出任何錯誤

這不是傳統的方法。 你需要這樣做。

 router.put("/update/:identifier", function(req,res){ User.findOne({identifier: req.params.identifier}, function(err, equipment) { equipment.coins= 50; equipment.equipments.purchased = true; equipment.save(function (err) { if (err) { return res.status(400).send({ message: errorHandler.getErrorMessage(err) }); } else { res.json(equipment); } }); }); });

獎勵:我建議你使用findAndUpdateOne ()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM