mongodb插入记录是提示duplicate key error index 要怎么解决?

猛仔不萌 2012-07-18 01:53:01

$sms = $this->_request->getPost('info');
$sms['create_time']=time();
$sms['content'] = strip_tags($sms['content']);//短信内容

$phone_num = explode(',',$sms['phone']);//获取前台页面传递过来的手机号码

foreach($phone_num as $val){
$sms['phone']=$val;
//插入mongodb
$mongodb = new Application_Model_DbTable_MongoSmsList();
$mongodb->insert($sms);
}



现在的问题是,多个手机号码,只有第一个号码能存入mongodb,第二次循环,到insert的时候就会报错:E11000 duplicate key error index: kaosheng_sales.sms_list.$_id_ dup key: { : ObjectId('50064ff15fe26c380a000002') } 。

_id是mongodb自动生成的,怎么会存在重复的情况呢?
这种情况应该怎么解决?
求解答!
...全文
4707 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
猛仔不萌 2014-07-01
  • 打赏
  • 举报
回复
上面代码错了


$sms = $this->_request->getPost('info');
$phone_num = explode(',',$sms['phone']);//获取前台页面传递过来的手机号码

foreach($phone_num as $val){   
    $data = Array();
    $data ['create_time']=time();
    $data ['content'] = strip_tags($sms['content']);//短信内容
    $data ['phone']=$val;
    //插入mongodb
    $mongodb = new Application_Model_DbTable_MongoSmsList();
    $mongodb->insert($data );
}
把定义$data放到foreach里面,否则mongodb会认为是同一条记录重复插入。
猛仔不萌 2014-07-01
  • 打赏
  • 举报
回复




foreach($phone_num as $val){	
    $sms = $this->_request->getPost('info');
    $sms['create_time']=time();
    $sms['content'] = strip_tags($sms['content']);//短信内容
    $phone_num = explode(',',$sms['phone']);//获取前台页面传递过来的手机号码
    $sms['phone']=$val;

    //插入mongodb
    $mongodb = new Application_Model_DbTable_MongoSmsList();
    $mongodb->insert($sms);
}
把定义$sms放入foreach里面就好了。
  • 打赏
  • 举报
回复
对于上述问题:我也遇到过 解决的办法就是讲后面所报出的ID50064ff15fe26c380a000002 在数据中删除与这ID相关的数据 这样就可以了 可能我这种做法有点不妥 但问题是解决了 希望有更好的建议
heloowird 2014-04-02
  • 打赏
  • 举报
回复
下面链接或许有帮助 http://www.cnblogs.com/stephen-liu74/archive/2012/08/01/2561557.html
jeffsc 2014-01-14
  • 打赏
  • 举报
回复
楼主这个问题解决没有。求指导
jeffsc 2014-01-09
  • 打赏
  • 举报
回复
有没有解决。我遇到同样的问题。
East271536394 2013-04-17
  • 打赏
  • 举报
回复
自己定义_id 就行了。
zhaojinll 2012-08-14
  • 打赏
  • 举报
回复
可以使用数组存储手机号吧
猛仔不萌 2012-07-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

duplicate key error index
的含义是:出现了重复的键
如何解决,那就是你的事情了,因为键和值都是你给的
[/Quote]

现在的问题是 _id 这个报错的字段是mongodb自动生成的值,不是我插入的。
xuzuning 2012-07-18
  • 打赏
  • 举报
回复
duplicate key error index
的含义是:出现了重复的键
如何解决,那就是你的事情了,因为键和值都是你给的

1,798

社区成员

发帖
与我相关
我的任务
社区描述
MongoDB相关内容讨论区
社区管理员
  • MongoDB社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧