{
"_id" : ObjectId("5b1e67f7966be059daf25a27"),
"userId" : 148,
"updatedAt" : ISODate("2019-02-13T08:00:01.250Z"),
"createdAt" : ISODate("2018-06-11T12:15:51.607Z"),
"sportsRanking" : [
{
"sportId" : 1,
"rank" : 2,
"subRank" : 1,
"points" : 80.0,
},
{
"sportId" : 2,
"rank" : 2,
"subRank" : 2,
"points" : 80,
},
{
"points" : 115.0,
"subRank" : 0,
"rank" : 2,
"sportId" : 4,
},
{
"points" : 130.0,
"subRank" : 1,
"rank" : 2,
"sportId" : 3
}
],
"vStatus" : 0.0,
"groupId" : 0,
}
我们尝试使用以下代码更新嵌套数组元素。但是没有用我们还尝试了updateMany
,BulkWrite
,arrayFilters
等。但是它仅更新数组中的第一个对象值(点)。请找到以下代码。
UserModel.update({
'userId': 148,
'sportsRanking.sportId': {$in:[1,2,3,4]}
}, {
$set: {
'sportsRanking.$.points': 35
}
},{multi:true});