【发布时间】:2021-01-13 13:50:42
【问题描述】:
我正在尝试使用 findByIdAndUpdate 将字段更新到文档中。我尝试更新的字段在条形模型中定义。而且我还可以保证req.body.bookId 有一个有效的ID。
我的请求如下所示,
app.patch("/foo", async (req, res) => {
try {
await validateId(req.body.bookId);
let doc = await Bar.findByIdAndUpdate(
req.body.bookId,
{ DateT: Date.now() },
{ new: true }
);
res.send(doc);
} catch (err) {
console.log(err);
}
});
条形图,
const mongoose = require("mongoose");
const barSchema = mongoose.Schema({
bookId: {
type: String,
unique: true,
},
DateT: {
type: Date,
default: null,
},
});
module.exports = mongoose.model("Bar", barSchema);
【问题讨论】:
-
我发现了您的问题,您为 bookId 分配了一个 ID,但您没有将其分配给
_id键,因此您不能使用findByIdAndUpdatene,因为为 _id 生成了不同的 ID -
@MohammadYaserAhmadi,是的,你是对的。使用
updateOne并将bookId传递给查询就可以了。