- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
因此,我试图在按下按钮时删除文档。按钮代码如下所示:
<form action="/patients/delete?_method=DELETE" method="POST">
<input type="hidden" id="patientID" name="patientID" value=' _id: <%= patient._id%>'>
<button type="submit" class="btn btn-primary">Delete this patient from the Database</button>
</form>
我已经设置了一条如下所示的路线:
router.delete('/delete', AuthControl.checkLoggedIn, patientsControl.patientDelete);
这是在患者控制中调用此函数:
patientDelete = async (req, res) => {
let DeleteParam = req.body.patientID;
console.log(DeleteParam);
let DeleteConfirm = await this.patientsModel.DeletePatient(DeleteParam);
if (DeleteConfirm) {
res.render('patients');
} else {
console.log("Error happening somewhere");
}
}
在患者模型中调用此函数:
async DeletePatient(DeleteParam) {
return mongoose.connection.db.collection("PatientsDB").
deleteOne({ _id : DeleteParam);
}
//编辑:快速修复上面的代码,不是我正在运行的
5f22dc43b1e72e9769263810
我试图删除的文档如下所示:
_id : 5f22dc43b1e72e9769263810
fName : "s"
lName : "s"
diseases : "s"
prescriptions : []
inhousedoctor : "s"
让我感到困惑的是,如果我将按钮值设置为 <%=patient.fName %>,它会完美删除。谁能告诉我我做错了什么?
return mongoose.connection.db.collection("PatientsDB").
deleteOne( {fName : DeleteParam});
}```
最佳答案
_id
文档的类型为 ObjectId
但是您正在搜索一个字符串,因此没有文档匹配。
如果您使用 Mongoose 模型,则会自动转换类型。但在这里,除了作为获取底层 MongoDB 连接 ( mongoose.connection
) 的一种方式之外,您实际上并没有使用 Mongoose。因此,您将使用不为您进行转换的纯 MongoDB。
因此,您可以使用相应的 Mongoose 模型并编写例如Patient.deleteOne({ _id: DeleteParam })
或只是 Patient.findByIdAndDelete(DeleteParam)
,或者您可以继续直接使用 MongoDB,但将值显式转换为 ObjectId
, 使用 { _id: mongoose.Types.ObjectId(DeleteParam) }
.
关于node.js - MongoDB .deleteOne 在 Node.js 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63176461/
我有一个包含客户数组的用户模型。我想根据 customer _id 删除特定客户。根据我在 Mongoose 文档中阅读的内容,我应该使用 Model.deleteOne 删除单个文档。 这是我的尝试
这两个操作删除一个对象。它们之间是否存在任何性能差异或两者相同? 最佳答案 findOneAndDelete 具有 sort 参数,可用于影响更新哪个文档。它还有一个 TimeLimit 参数,可以控
在 express 和 mongodb 中,我想按 id 删除文档findOneAndDelete() 不能按_id删除,只能按字段删除!为什么? db.collection('quotes').fi
因此,我试图在按下按钮时删除文档。按钮代码如下所示: '> Delete this patient from the Database 我已经设置了一条如下所示的路线: route
我是 node.js 的新手,因此是一个非常微不足道的问题。 我有以下几行代码: (A) 定义一个模型 var mongoose = require('mongoose'); var genreSch
我正在尝试在 mongo DB 包装器上编写测试(规范),并偶然发现了这个奇怪的问题。 我的代码,构建在 mongodb 的薄包装之上,公开 _id作为世界字符串,但在与 mongo 对话时使用(转换
目前正在使用 nodejs 开发与 MongoDB 数据库通信的 API,我注意到删除文档后的特殊行为。 事实上,我的 API 有几个端点,允许检索数据库中的所有动物,使用相应的 id 检索特定动物或
首先要提到的是,我对 Node.Js 和 MongoDB 完全陌生。 我正在使用 Node.Js 和 MongoDB 编写后端 API,它将处理来自前端的 GET、POST、DELETE 请求,这些非
我是一名优秀的程序员,十分优秀!