我有一个看起来像这样的对象用户
{
"_id" : ObjectId("5edbdf57ac52325464b054ec"),
...
"purchaseHistory" : [
{
"_id" : ObjectId("5ee7a8f6b438a1254cec3f74"),
...
},
{
"_id" : ObjectId("5ee7a8f6b438a1254cec3f88"),
...
}
]
}
我想做的是通过ID向“ purchaseHistory”内的特定对象添加新字段,例如,我想向“ 5ee7a8f6b438a1254cec3f88”字段添加“状态”:0
我尝试过的是
users.findOneAndUpdate(
{
_id: ObjectId(userId),
'purchaseHistory._id': ObjectId(saleId)
},
{
$set: { 'purchaseHistory.$.status': status}
}
)
但是它给我一个错误,我该怎么做呢?
答案 0 :(得分:0)
根据D. SM提供的网站,我能够做到这一点
users.findOneAndUpdate(
{
'_id': ObjectId(userId),
'purchaseHistory._id': ObjectId(saleId)
},
{
$set: { 'purchaseHistory.$.status': status }
}
)
答案 1 :(得分:-1)
MongoDB在这种情况下提供了positional update operator。