首页 > 解决方案 > 如何通过 onclick 从 mongoose 集合中删除数据?

问题描述

我是 mongodb 的新手,我创建了一个使用 mongodb 作为数据库的待办事项列表应用程序。当用户键入内容时,它会保存到猫鼬集合中,但是当我尝试通过 onclick 从猫鼬集合中删除数据时,它会按顺序进行,如果我单击第二个按钮,它将删除我的第一个数据,然后是第二个数据,然后是第三个,我点击哪个按钮并不重要它总是按顺序排列(1、2、3等......)

这是我的代码

应用程序.js

router.delete('/Delete_Data',  (request, response) => {
    item.findOneAndDelete({}, (err, data) => {
        if(err){
            console.log(err);
            return response.status(500).send();
        }
        else{
            return response.json({data});
        }
    });
    
});

脚本.js

async function deleteLSItem(){
  
  let options = {
    method: 'DELETE',
    headers: {
      'Content-Type': 'application/json'
    }
  };

  const response = await fetch('/Delete_Data' , options);
  const data = await response.json();
  console.log(data);
}

deleteLSItem()是一个删除按钮

<td class="table-buttons" id="margin-padding"><button class="btn btn-sm btn-primary delete-btn" onclick="deleteLSItem()"><i class="fa fa-trash" aria-hidden="true"></i></button><span>Delete</span></td>

这是输出

标签: javascriptmongodbfetch

解决方案


router.delete('/Delete_Data',  (request, response) => {
item.findOneAndDelete({'_id':9898}, (err, data) => {
    if(err){
        console.log(err);
        return response.status(500).send();
    }
    else{
        return response.json({data});
    }
});

});

item.findOneAndDelete({}...通过'{}'指定过滤器, 您将删除集合中的第一项。假设您要删除的项目的 id 是 9898。那么您的代码应如上所示

https://docs.mongodb.com/manual/reference/method/db.collection.findOneAndDelete/index.html


推荐阅读