MongoDB perl模块:“查询错误:未授权查询”
我正在尝试使用Perl循环遍历mongodb实例中的文档。我的代码的主干是:MongoDB perl模块:“查询错误:未授权查询”,perl,mongodb,Perl,Mongodb,我正在尝试使用Perl循环遍历mongodb实例中的文档。我的代码的主干是: use strict; use warnings; use MongoDB; use utf8; my $client = MongoDB::MongoClient->new( host => ..., port => ..., db_name => 'database_main', username => ..., passwo
use strict;
use warnings;
use MongoDB;
use utf8;
my $client = MongoDB::MongoClient->new(
host => ...,
port => ...,
db_name => 'database_main',
username => ...,
password => ...
);
my $database = $client->get_database('database_main');
my $collection = $database->get_collection('collection');
my $query = $collection->find();
while (my $doc = $query->next){
...
}
但是,在执行查找行时,我遇到一个错误:
查询错误:未授权查询数据库\u main
我尝试过使用Mongo shell执行完全相同的过程,但没有得到任何错误
有人知道如何解决这个问题吗
有人知道这个错误是在什么情况下发生的吗
提前感谢您提供的任何帮助。就我而言,我有以下版本,即unbuntu软件包14.04附带的版本
dpkg -l libmongodb-perlDesired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-==============-============-============-==================================
ii libmongodb-per 0.702.1+ds-1 amd64 Mongo Driver for Perl
哪个版本
version 0.702.1
我从CPAN安装了最新版本,它启动了wo
v0.708.0.0版是否为此数据库设置了身份验证?你在查询之前调用该方法吗?@friedo当我在新数据库中初始化$client时。。。第一部分包括我的凭证详细信息。这就是您的意思吗?您是否也在构造函数中设置了db_name参数?连接需要针对特定数据库进行身份验证。您可以使用authenticate方法手动执行此操作,或者在构造函数中指定它。否则,它将尝试根据管理数据库对您进行身份验证。。。构造器。所以不需要“身份验证”方法吗?@Josh如果编辑您的问题,将MongoDB::MongoClient->new…;中的所有内容都包括在内,可能会有所帮助;。当然是为了安全而混淆。