【发布时间】:2021-02-14 06:05:32
【问题描述】:
我在 MongoDB 中有一个名为“成员”的集合。每个成员都有 first_name、last_name 和自动生成的对象 ID。我正在使用 ExpressJS 获取数据并使用 VueJS 显示它。这适用于 get 和 post 方法,但我还需要一个 delete 方法。我的问题是如何找到用户点击并想要删除的特定成员?这是我的代码(简化版)
<form action="/delete" method="delete">
<ul>
<li v-for="(value, index) in allTeamMembers">
{{ 'Member: ' + value }}
<button type="submit">Delete</button>
</li>
</ul>
</form>
expressApp.delete('/delete' , function (request, response) {
MongoClient.connect(url, function (err, db) {
if (err) throw err;
let dbo = db.db(dbName);
let myquery = {first_name: 'Tobias'};
dbo.collection("Members").deleteOne(myquery, function (err, obj) {
if (err) throw err;
console.log("1 document deleted");
db.close();
});
});
});
这当然是我的查询可行,需要更改,但我找不到从列表中查询单击元素的方法。现在,它只是删除了所有 first_name = "Tobias",但我希望它从列表中删除单击的元素。
【问题讨论】:
-
首先,您必须将用户数据传递到后端。接下来,必须在您的控制器中获取传递的数据,例如 request.body 或 request.query。最后,您可以像@charlieb 提到的那样轻松删除您的文档。
-
我的列表包含已经从数据库中“获取”的数据,并且我也有 ObjectID。但是当我单击它旁边的按钮时,我找不到获取对象 id 的方法。
-
那么你必须删除 mongodb 标签并在 vue.js 中搜索 :)
标签: javascript mongodb express vue.js collections