【发布时间】:2020-07-14 02:28:46
【问题描述】:
我有一个 MongoDB,我正在使用 Mongoose API。
我有一个方法,我希望它能让我在我的用户对象中找到一个“习惯”。习惯是生活在一系列习惯中的对象。我正在向该方法传递一个 UUID 来查找习惯。
这是我的方法:
async updateHabit(req, res) {
const { user_id } = req.headers
const { habitId } = req.params
const habit = req.body
const user = await User.findById(user_id)
const habitIndex = user.habits.findIndex(habit => habit.id == habitId)
user.habits[habitIndex] = habit
console.log(user.habits)
await user.save()
return res.json(user.habits)
}
奇怪的是保存方法正上方的控制台日志显示我的用户的最新版本,显示正确。它记录用户的习惯以及旧习惯的更新习惯 - 在旧习惯所在的索引处。
但是,save 方法并没有将其写入我的数据库。我有一个几乎相同的删除方法,它工作得很好。
我曾尝试从 PUT 更改为 POST(想,'好吧,我实际上是在发布一个新数组') - 但没有奏效。
【问题讨论】: