Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MongoDB perl模块:“查询错误:未授权查询”_Perl_Mongodb - Fatal编程技术网

MongoDB perl模块:“查询错误:未授权查询”

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

我正在尝试使用Perl循环遍历mongodb实例中的文档。我的代码的主干是:

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…;中的所有内容都包括在内,可能会有所帮助;。当然是为了安全而混淆。