node.js - 尝试更新父文档猫鼬中的子文档
问题描述
我正在尝试使用猫鼬从父文档中更新或删除子文档。
我的代码:
editSubscription(req, res) {
const token = req.headers.authorization;
jwt.verify(token, req.app.get('yourSecretKey'), function (err, payload) {
userModel.update({ _id: payload.user._id, "subscriptions._id": req.params.id }, { "$set": { "subscriptions.$": req.body } }, function (err, obj) {
console.log(obj)
})
})
}
console.log 的输出是
{ n: 0, nModified: 0, ok: 1 }
我该怎么做?我知道它是否修改了 nModified 返回 1。我找不到任何关于如何解决或解决它的文档,以及我已经尝试过的 stackoverflow 上的所有解决方案,但没有任何效果。
我收藏的文档样本:
id: '5db990daa05aa90de0c8b86b',
user:
{ role: 'User',
subscriptions: [
{ active: true,
_id: '5dbad05aaf232e2bdc033339',
name: 'Basic Fit',
price: 20,
paymentDate: '07-11-2020',
created: '2019-10-31T12:15:22.360Z',
updated: '2019-10-31T12:15:22.360Z' },
{ active: true,
_id: '5dbad2568bf56255a0f39bc7',
name: 'Netflix',
price: 10,
paymentDate: '07-11-2019',
created: '2019-10-31T12:23:50.141Z',
updated: '2019-10-31T12:23:50.141Z' } ]
],
_id: '5db990daa05aa90de0c8b86b',
fullname: 'Test naam',
email: 'test1@mail.com',
password:
'$2a$10$VzBnIcVraIRdmzy6rPHOX.7gGOXToTBNISLEfi429OfpRx02FxCaO',
birthDate: '02-12-1988',
created: '2019-10-30T13:32:10.276Z',
updated: '2019-10-30T13:32:10.276Z',
__v: 0 },
payload.user._id == 已验证的登录用户 ID
req.params.id 应该是我正在尝试编辑的订阅 ID
解决方案
尝试这个:
editSubscription(req, res) {
const token = req.headers.authorization;
jwt.verify(token, req.app.get('yourSecretKey'), function (err, payload) {
userModel.update({ _id: ObjectId(payload.user._id), "subscriptions._id": ObjectId(req.params.id) }, { "$set": { "subscriptions.$": req.body } }, function (err, obj) {
console.log(obj)
})
})
}
推荐阅读
- javascript - ConstantSourceNode 设置的振荡器频率错误
- jquery - 如何在列表框中选择一个值并将其与其 optgroup 标签克隆到另一个列表框
- python - 如何使小部件随 PyQt5 中的窗口缩放?
- clojure - 在 Clojure 中使用 Java 哈希图
- machine-learning - Keras 中两次损失的总和(感知和 MSE)
- android - 访问 zzbgl 并覆盖已弃用的 API 时出错
- javascript - 使用 node.js 更正了大型 RESTful API 的可扩展结构
- go - 如何使用 Golang big.Int 计算`x^3 + ax + b mod p`
- angular - 动态创建 formGroupName 不起作用 - Angular 反应式表单
- ide - 关闭项目后pycharm配置丢失