我使用 Mongo 的方式有什么問題?我只是想更新一條記錄。
這是我的代碼:
async function updateReview (req, res) {
const review = {
...req.body
}
const existingReview = await Review.findOne({
userId: review.userId,
launchId: review.launchId
}).lean()
if (!existingReview) {
return res.status(404).send()
}
existingReview.content = review.content
existingReview.displayName = review.displayName
existingReview.rating = review.rating
await existingReview.save()
return res.status(200)
}
所以我想做的就是找到現有的評論并更新一些欄位并保存。我的代碼在行中失敗:
await existingReview.save()。錯誤說這.save不是一個函式。
uj5u.com熱心網友回復:
.save()函式不存在,因為你呼叫.lean()它回傳一個普通的 JS 物件而不是 Mongoose 物件。
而不是使用.save()以下選項之一:
示例 1
async function updateReview (req, res) {
const review = {
...req.body
}
const existingReview = await Review.findOne({
userId: review.userId,
launchId: review.launchId
}).lean()
if (!existingReview) {
return res.status(404).send()
}
const { content, displayName, rating } = review;
const { _id } = existingReview;
await Review.updateOne({ _id }, { content, displayName, rating });
return res.status(200)
}
示例 2
async function updateReview (req, res) {
const review = {
...req.body
}
const existingReview = await Review.findOne({
userId: review.userId,
launchId: review.launchId
}).lean()
if (!existingReview) {
return res.status(404).send()
}
const { content, displayName, rating } = review;
const { _id } = existingReview;
await Review.findOneAndUpdate({ _id }, { content, displayName, rating }).lean();
return res.status(200)
}
由于您不需要更新的物件,因此使用updateOne而不是findOneAndUpdate
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/533634.html
上一篇:單擊元素時切換類
