Удалить один мангуст проблема экспресс и узел

#node.js #mongodb #express #mongoose #mongoose-schema

Вопрос:

У меня есть этот код в моем main.app:

 app.get('/admin_panel', isAdm, async (req, res)=>{
  var records = await add_joke.find({});
  res.render('admin_panel', { recs: records });
})
 

После этого у меня есть и файл ejs с именем admin_panel с этим кодом:

 <% for(var i in recs){ %>
          <div class="the_div_of_joke mt-5">
            <p class="titleOfJoke text-center"><%= recs[i].title %></p>
            <p class="glumaAdev text-center"><%= recs[i].description %></p>

            <a href="/profiles?username=<%= recs[i].post_user %>" class="text-right">By 
            <%=recs[i].post_user %></a>

            <form action="/admin_panel" method="post">
              <input type="hidden" name="id_post" value="<%= recs[i].id %>">
              <input type="submit" value="Delete">
            </form>

          </div>
<% } %>
 

И что отправить на удаление — это:

 app.post('/admin_panel', async (req, res)=>{
   var the_records = req.body;
   console.log(the_records);
   var the_alg_find = await add_joke.deleteOne({id: the_records.id_post});
   console.log(the_alg_find);
   res.redirect('/admin_panel');
})
 

Проблема в том, что эта форма post предоставляет мне оставшуюся часть идентификатора первого сообщения в базе данных для всех сообщений, есть ли другой способ выбрать определенный элемент из итерации, подобной этому примеру?
Спасибо!

Комментарии:

1. Действительно ли записи имеют разные «id» или они одинаковые?

2. Вот коллекция: ibb.co/QMn1ZqG

Ответ №1:

Чтобы лучше понять это, вам, вероятно, следует поделиться своей схемой сбора

Комментарии:

1. Схема: ibb.co/xjHVtGs

2. Спасибо, что поделились схемой. Согласно вашей схеме, у вас есть {_id: ObjectId(), title: string, desc: string,...} so в вашей HTML-форме, которую вы должны использовать value="<%= recs[i]._id %>" вместо

Ответ №2:

На скриншоте, который вы опубликовали, документы в базе данных не имеют id поля. Поэтому вы не можете ссылаться на recs[i].id , и запросы на { id: somevalue } не будут работать. Вы имели в виду использовать _id поле, вместо этого?