3

我有以下数据库,这是数据库中已有的对象

{ "_id" : ObjectId("001"), "password" : "test", "user" : "test"}

东西添加到该集合中

1.索引用户和密码

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

4

1 回答 1

5

MongoDB::Collection::insert 不检查错误。

尝试

my $enter = $db->data->insert({'user'=>'test','password'=>'test'}, {safe => 1});

使模块在失败时发出嘶嘶声。这记录在MongoDB::Collection

如果你想检查错误,你也可以这样做

my $error = $db->last_error();

如此处所述

于 2012-04-29T16:37:51.900 回答