node.js - MongoDB将字段添加到数组内的对象
问题描述
我有一个看起来像这样的对象用户
{
"_id" : ObjectId("5edbdf57ac52325464b054ec"),
...
"purchaseHistory" : [
{
"_id" : ObjectId("5ee7a8f6b438a1254cec3f74"),
...
},
{
"_id" : ObjectId("5ee7a8f6b438a1254cec3f88"),
...
}
]
}
我想做的是通过ID向“purchaseHistory”中的特定对象添加一个新字段,例如我想向“5ee7a8f6b438a1254cec3f88”添加一个字段“status”:0
我尝试的是
users.findOneAndUpdate(
{
_id: ObjectId(userId),
'purchaseHistory._id': ObjectId(saleId)
},
{
$set: { 'purchaseHistory.$.status': status}
}
)
但这给了我一个错误,我该如何正确地做到这一点?
解决方案
根据 D. SM 提供的网站,我可以这样做
users.findOneAndUpdate(
{
'_id': ObjectId(userId),
'purchaseHistory._id': ObjectId(saleId)
},
{
$set: { 'purchaseHistory.$.status': status }
}
)
推荐阅读
- javascript - 类型错误:this.props.weather 未定义
- git - ssh:无法解析主机名 git:名称或服务未知 致命:无法从远程存储库读取
- python - 无法在 python(jupyter)中创建术语文档矩阵
- highcharts - highstock:当系列与 sma 相交时如何更改区域样条中的颜色
- java-9 - GluonVM、源代码和 JDK 兼容性
- python - 如何检查记录器是否存在
- sql - INSERT SELECT FOR UPDATE ON CONFLICT DO NOTING RETURNING 的语义
- spring - spring mvc登录表单验证
- javascript - 如何在不使用 scaleTime 的情况下使用 d3 v4 创建多折线图?
- c# - 如何使用 Await 方法加载新页面