- 22
- 0
我司的点赞功能
mongodb结构如下
{
"_id" : ObjectId("5a38c409fcd12baa083d6869"),
"uid" : "1090692",
"username" : "vvvv",
"image" : "style/default/commonImg/headgirl.gif",
"time" : 1513669641,
"content" : "12312321",
"likelist" : {
"1090339" : {
"uid" : "1090339",
"username" : "xxx",
"image" : "group1/M00/00/D9/wKgAE1oTkTKAdTPNAAEQcPzKoDA20.jpeg",
"time" : 1513676247
},
"1090542" : {
"uid" : "1090542",
"username" : "aaa",
"image" : "group1/M00/00/D8/wKgADVoOVaaAd0SvAAA8Kg_PvWI97.jpeg",
"time" : 1513676255
}
}
}
php代码如下
if (in_array($this->user['uid'],$keys)){ //如果已经点赞
$data = $talk->update($info,array('$unset'=>array("likelist.$userid"=>1)),array('upsert'=>true));
}else{ //如果没点赞
$data = $talk->update($info,array('$set'=>array("likelist.$userid"=>$userinfo)),array('upsert'=>true));
}
其中有一个问题就是当我点赞后又取消点赞,likelist为空时,再进行点赞,就会报一个这个错误
E11000 duplicate key error collection: Mdaxue.Talks index: _id_ dup key: { : ObjectId('5a38c409fcd12baa083d6869') }
虽然也有笨方法解决
如果likelist为空 就删除这个字段
但是总觉得会有更好方法解决他
ps:有好一点的php操作mongodb的文档吗?到处翻博客,博客上写的又不是很全 ,很蛋疼
0
打赏
收藏
点击回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
