分享

mongodb用pull删除数组元素不重复删除

wclxyn 发表于 2013-10-17 21:37:01 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 3 5954
{
  "_id": "e724225d-0041-4383-9cd9-d9b28f1f7f22",
  "l": {
    "d": [
      {"u": "http://qq-----3223423523", "t": 1363173410929},
      {"u": "http://qq-----3223423523","t": 1363173411188}
    ]
  }
}
我做了一个mongodb的表如上结构
我现在想用pull删除l.d.u="http://qq-----3223423523"
的数据,但是会把所有匹配都删除,我怎么处理这个问题,或者有别的方法不重复删除吗?
              
               
                    mongodb
               

已有(3)人评论

跳转到指定楼层
ling1212111 发表于 2013-10-17 21:37:40

            mongodb 的 update方法有4个参数,第4个参数为true时,删除所有匹配的,默认为false,删除匹配的第一个文档。
        
回复

使用道具 举报

ITbasketplayer 发表于 2013-10-17 21:38:31

            只能用update
        
回复

使用道具 举报

iling5 发表于 2013-10-17 21:39:09

            update({_id:"e724225d-0041-4383-9cd9-d9b28f1f7f22"}, {$pull:{"l.d":{u:"http://qq-----3223423523"}} )
因为d数组下两个u的值相同,所以会删除掉两条,如果想删掉指定的某一条,可以以唯一的id来指定,比如使用t的值:
update({_id:"e724225d-0041-4383-9cd9-d9b28f1f7f22"}, {$pull:{"l.d":{t:"1363173410929"}} )
引用 楼主 wclxyn 的回复:
{
  "_id": "e724225d-0041-4383-9cd9-d9b28f1f7f22",
  "l": {
    "d": [
      {"u": "http://qq-----3223423523", "t": 1363173410929},
      {"u": "http://qq-----3223423523","t": 1363173411188}
    ]
  }
}
我做了一个mongodb的表如上结构
我现在想用pull删除l.d.u="http://qq-----3223423523"
的数据,但是会把所有匹配都删除,我怎么处理这个问题,或者有别的方法不重复删除吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条