【发布时间】:2021-01-10 17:24:22
【问题描述】:
我有以下查询,它在 MongoDB CLI 客户端中成功,但在 Mongoose 中不成功:
// MongoDB client successfully updates collection
db.col.updateOne({_id: "5f687da23a4dc9071baefd6d"}, {$set: { 'licence.count' : 5 }})
// Mongoose query which fails
Organisation.updateOne({_id: "5f687da23a4dc9071baefd6d"}, {$set: {'licence.count' : 5}})
该表只是一个 _id,其中包含一个名为 license 的字段,其中包含一个包含计数的嵌套文档。访问 MongoDB 中的嵌套字段是否有不同的语法,因为我可以在顶层设置字段,例如许可证本身?
谢谢
【问题讨论】:
-
使用猫鼬查询时会发生什么?
-
我正在运行查询 which mocha 在 try catch 块内使用 await 以便捕获错误。当我运行查询时,它没有错误地通过并且无法应用更新。我觉得这很奇怪,因为确实会发生其他错误。我使用强制重复的 _id 查询对此进行了测试
-
您可能需要添加 { new: true } 来告诉 mongoose 在查询后返回更新后的文档。所以,Organisation.updateOne({_id: "5f687da23a4dc9071baefd6d"}, {$set: {'licence.count' : 5}}, {new:true})
-
但我不想更新我只想更新的新文档?