首页 > 解决方案 > 根据 ID 从 MongoDB 集合中删除特定元素

问题描述

我在 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" 的所有内容,但我希望它从列表中删除单击的元素。

标签: javascriptmongodbexpressvue.jscollections

解决方案


如您所说,如果您要查询 Tobias,它将找到所有 Tobias 示例。也许您应该将 mongoDB ID 作为属性存储在元素中,以便在单击时轻松访问它。然后,您可以按照第一个示例尝试根据唯一 ID 进行删除:https ://docs.mongodb.com/manual/reference/method/db.collection.deleteOne/#examples


推荐阅读