如何通过猫鼬从表单更新特定文档?

时间:2018-09-25 10:05:29

标签: node.js mongodb express mongoose

正在努力解决此问题,因为我缺少一些基本知识,但是经过数小时的研究,我认为我需要一些帮助:)

我这样拥有一个(简化的)收藏夹:

const ExampleSchema= new Schema ({
    Word: String,
    Difficulty: String,
)}; 

我成功在页面上这样显示:

<% ExampleSchemas.forEach(exampleschema=> { %>      
<p><%= exampleschema.word %></p>
<p style="display: none" name="ExampleSchemaID" value="<%= ExampleSchema._id %>"</p>
<% }) %>

对于每个单词,我都有下面的表格,我希望用户能够选择easyokhard并为此设置数据库中的值。

<form method="PUT">     
    <button formaction="/review/feedback/easy">Easy</button> 
    <button formaction="/review/feedback/ok">Ok</button>
    <button formaction="/review/feedback/hard">Hard</button>
/form>

我一直在玩这样的一条路线,但无济于事

    router.put("/review/feedback/easy", function (req,res){
        var ID = req.body.ExampleSchemaID;
ExampleSchema.findByIdAndUpdate(
        req.params.ExampleSchema._id,
        req.Difficulty= easy);

另一个问题是,我想向用户显示x的这些文档数,因此我需要一种仅获取该特定单词的路由。

1 个答案:

答案 0 :(得分:0)

router.put("/review/feedback/easy", function (req,res){
        var ID = req.body.ExampleSchemaID;
ExampleSchema.findByIdAndUpdate({"_id": req.params.ExampleSchema._id},{"Difficulty": "3"});

但是请不要因为您的困难是数字,所以为什么不使用数字:

const ExampleSchema= new Schema ({
    Word: String,
    Difficulty: Number,
)}; 

router.put("/review/feedback/easy", function (req,res){
            var ID = req.body.ExampleSchemaID;
    ExampleSchema.findByIdAndUpdate({"_id": req.params.ExampleSchema._id},{"Difficulty": 3});