我有以下数据库,这是数据库中已有的对象
{ "_id" : ObjectId("001"), "password" : "test", "user" : "test"}
添加到该集合的东西
1.index over user and password
2.独特的用户指数
当我尝试将相同的参数插入项目
时my $enter = $db->data->insert({'user'=>'test','password'=>'test'});
$ enter返回ObjectID的值(如果用户重复,则应该获得错误消息而不是Objectid)
通过mongo shell
E11000重复键错误索引:dataofitem.user
显示错误,但是当我尝试通过Perl模块(https://metacpan.org/module/MongoDB)
时它作为对象id返回,我想知道为什么我没有错误消息而不是Objectid
答案 0 :(得分:5)
MongoDB :: Collection :: insert不会检查错误。
尝试
my $enter = $db->data->insert({'user'=>'test','password'=>'test'}, {safe => 1});
使模块失败。这在MongoDB::Collection
中有记录如果您想检查错误,也可以
my $error = $db->last_error();
记录在案here。