为什么猫鼬不更新文档?

时间:2019-04-19 22:28:36

标签: node.js mongodb express mongoose

我在使用猫鼬更新文档时遇到问题。当我致电.update()时,它不会更新文档。 index.html

<form method="POST" action="/updateItem?_method=PUT">
    <input type="text" name="itemName" placeholder="Update Item" required/>
    <input type="number" name="price" placeholder="price"/>
    <input type="text" name="rarity" placeholder="rarity"/>
    <input type="Submit" value="Submit"/>
</form>

app.js(服务器端)

app.put("/updateItem", (req, res)=>{
    var updatedObj ={};
    Object.entries(req.body).forEach(elem=>{
        if(elem[0]!=="itemName"){
            updatedObj[elem[0]] = elem[1];
        };
    });
    console.log(updatedObj);
    async function updateItem(){
        const updatedItem = await Item.update({name:req.body.itemName}, {
            $set: updatedObj
        });
        console.log(updatedItem);
        res.redirect(`/searchItem?itemName=${req.body.itemName}`);
    };
    updateItem();

});

猫鼬模型:

const ItemSchema = new mongoose.Schema({
    name: String
});

我还有另外两个与我的问题不完全相关的问题,因此回答它们不是很重要,但这将有很大帮助。

  1. 如果在更新时我在updatedObj中加入了商品的名称,会发生什么?
  2. 如果我尝试更新不存在的商品会怎样?猫鼬会创建一个新的吗?还是会返回错误?

0 个答案:

没有答案