mongodb - 用猫鼬更新文档——一个属性没有被更新?
问题描述
我有以下代码可以更新 MongoDB 中的文档:
exercisesRouter.put('/:exerciseId', async (req, res) => {
try {
await mongoose.connect('mongodb+srv://nalanart:password@cluster0.2iplh.mongodb.net/workout-app-db?retryWrites=true&w=majority',
{ useNewUrlParser: true, useUnifiedTopology: true })
await Exercise.findByIdAndUpdate(req.params.exerciseId, {
name: req.body.name,
sessionOne: req.body.sessionOne,
sessionTwo: req.body.sessionTwo,
weight: req.body.weight,
failCount: req.body.failCount,
reps: req.body.reps
})
res.sendStatus(204)
} catch(error) {
throw error
}
})
问题是,当我使用 Postman 对其进行测试时,它会正确更新所有内容,但 'reps' 属性除外。这是我放入 Postman 的 JSON 正文:
{
"name": "deadlift",
"sessionOne": {
"setsRegular": 4,
"repsRegular": 5,
"setsAmrap": 1,
"repsAmrap": 5
},
"sessionTwo": {
"setsRegular": 0,
"repsRegular": 0,
"setsAmrap": 0,
"repsAmrap": 0
},
"weight": 145,
"failCount": 2,
"reps": [5, 5, 5, 4, 4]
}
此图为发出 put 请求后的文档(通知 reps,之前的 [5, 5, 5, 5, 5] 没有更新为 [5, 5, 5, 4, 4]
我真的对此感到非常困惑,我觉得这是我的代码中的一个小错字,我必须忽略或者可能与它是一个数组有关?任何帮助表示赞赏
解决方案
推荐阅读
- windows-subsystem-for-linux - 从 Windows(主机)资源管理器访问 Linux 文件
- javascript - 如果我以这种方式编程,我是否有更多概述?
- pandas - 基于数据框列结果,所有后续行都等于重复值,直到结果更改并出现新的重复值
- php - 如何在 laravel 控制器中的方法显示中接受或拒绝输入图像?
- c# - How to read thumbprints of signing certificates from Federation Metadata XML?
- http - Using multiple http proxies in groovy
- reactjs - Join group on the js - SignalR 1.1.4
- postgresql - 如何将环境变量传递到 .sql 文件中?
- azure - 是否可以使用 cosmos db 中的 Table API 通过代码或 arm 模板在数据库级别提供吞吐量?
- php - 这些 PHP 数组有什么区别?