Как мне обновить конкретный документ из формы через mongoose? - PullRequest
0 голосов
/ 25 сентября 2018

Я борюсь с этой проблемой, потому что мне не хватает некоторых основ, я думаю, но после нескольких часов просмотра документов, я думаю, что мне нужна помощь :)

У меня есть (упрощенная) коллекция, поэтому:

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>
<% }) %>

Для каждого слова, которое у меня есть форма ниже, я бы хотел, чтобы пользователь мог выбрать easy,ok или hard и для этого установить значение в БД.

<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 голосов
/ 25 сентября 2018
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});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...