node.js - Mongoose 删除文档字段而不是整个文档
问题描述
查询不是删除 otp 属性,而是删除整个文档
架构。验证后我想删除otp
const LoginSchema = new mongoose.Schema({
email: String,
password:String,
verified: Boolean,
otp:Number
});
const Model = mongoose.model("Users", LoginSchema);
在 Post 请求中查询
app.post("/verify/:id", async(req, res) => {
var User = await Model.findOne({ _id: req.params.id, otp:req.body.otp });
Model.deleteOne({ otp: User.otp }, (err, res) => {
if (err) console.log(err)
else console.log("succesful");
})
})
解决方案
那是因为您在使用“ deleteOne ”时删除了一个文档。您需要$unset
otp 属性。
试试这个:
Model.findOneAndUpdate({ otp: User.otp }, {$unset: {otp: 1 }},(err, res) => {
if (err) console.log(err)
else console.log("succesful");
})
})
推荐阅读
- javascript - 滚动到数组中的每个标记标签并将其显示在屏幕上
- javascript - 滚动到底部按钮仅在滚动超过 200 像素时显示
- reactjs - 当道具实际上包含一个数组时,它为什么显示为未定义
- c++ - 获得对正确定义的友元函数的未定义引用-_-
- java - 检查二叉树是否平衡
- php - Symfony:当未选择任何选项时,Choicetype 字段未在请求中返回
- ios - ios应用程序在离线模式下崩溃,使用flutter firebase实时数据库
- c# - 切换页面时如何加载图表?
- schema.org - 日期未知 (TBD) 的事件的事件架构
- php - 显示查询失败的值