mongoose更新子文档中数值错误
使用mongoose连接mongodb
scheme:{
sid:String,
members:[
{uid:String,name:String, count:Number}
]
}
值如下:
{ "_id" : ObjectId("576247c5cbf64140319f8265"),
"members" : [
{ "uid" : "5752a66b01f3b24eac9cbdd3", "name" : "xiaoliu", "count" : 38, "_id" : ObjectId("576247c5cbf64140319f8267") },
{ "uid" : "5752a66b01f3b24eac9cbdd2", "name" : "xiaowei", "count" : 35, "_id" : ObjectId("576247c5cbf64140319f8266") }
],
"__v" : 0
}*****
在更新过程中,使用update进行更新,其中N是一个数值,表示在原来的值小于N时,更新成N
tbl.update(
{_id:"576247c5cbf64140319f8265", "members.uid":"5752a66b01f3b24eac9cbdd2", "members.count":{$lt:N}},
{$set:{ "members.$.count": N}},
function(err, doc){
......
})
在更新过程中,发现给定的"members.uid":"5752a66b01f3b24eac9cbdd2"是其中的第二个成员的标识,但是更新结果却是跟新了第一个成员中的count值
求大神指点?错在哪里,query条件错了吗?怎么修改?多谢,多谢
1 回复
使用elemMatch,匹配多个条件,“members” : {$elemMatch:{uid: uid, count: {$lt:N}},打扰大家了