草庐IT

perl-critic

全部标签

perl - 如何捕获 Perl MongoDB::Cursor 的 'recv timed out' 错误?

我有一个Perl程序通过cron发出这些消息:recvtimedout(60000ms)at/usr/local/lib/perl/5.8.8/MongoDB/Cursor.pmline251.recvtimedout(60000ms)at/usr/local/lib/perl/5.8.8/MongoDB/Cursor.pmline251.recvtimedout(60000ms)at/usr/local/lib/perl/5.8.8/MongoDB/Cursor.pmline251.我已采取以下步骤来缓解:$collection->find(...)周围的evalblock$curs

mongodb - 如何使用 Perl 对 mongodb 中的多个字段进行排序?

如何使用Perl在MongoDB中进行多重排序?我目前的做法是这样的:my$sort={"is_instock"=>-1,"ua"=>1};my$resultSet=$collection->find({moderated=>1,markers=>{'$all'=>$obj->{markers}}})->sort($sort)->limit(25);@{$result}=$resultSet->all;但是,我得到了按一个字段(ua)排序的数组。我做错了什么? 最佳答案 这里的基本问题是Perl中的“散列”默认按“键”排序。为了获得

mongodb - Perl MongoDB::Collection 聚合函数的使用示例

谁能分享一个在Perl中正确使用MongoDB::Collection聚合函数的示例?我希望对一个字段进行简单求和,其中另一个字段等于某个值x。从那里我将能够找出其余部分。谢谢 最佳答案 这是我构建的示例。for(my$i=0;$iaggregate([{"\$match"=>{"b"=>{"\$gte"=>$number,"\$lt"=>$number+1000}}},{"\$group"=>{"_id"=>0,"average"=>{"\$avg"=>"\$b"},"count"=>{"\$sum"=>1}}}]);printD

perl - perl查询ISODate时间

我有一个应用程序,我需要能够通过mongoshell查询以下查询中的日期范围,但我无法通过perlMongoDB驱动程序重现它db.matches.find({last_seen:{$gte:newDate("2014-05-15T00:00:00.000Z")}});我最初的perl查询看起来像(我知道很幼稚)$matches->find({last_seen=>{'$gte'=>"newDate(\"2014-05-15T00:00:00.000Z\")"}});数据的一个例子是{"_id":ObjectId("5365e47c183aa8df9dee7558"),"count":

perl - 从 Perl 驱动程序插入 MongoDB 服务器日期

从MongoDB控制台,我可以:>db.log.insert({dt:newDate})>db.log.find().sort({$natural:-1}).limit(1){"_id":ObjectId("50caae2cadd0e471af0b3941"),"dt":ISODate("2012-12-14T04:42:20.560Z")}如何从PerlMongoDB驱动程序执行相同的操作?背景我正在使用带有上限集合的MongoDB进行日志记录。我知道ObjectID包含时间戳,但是显示它和查询它并不简单。因此,我想为每个条目添加一个基于服务器的时间戳,但无法弄清楚如何通过Perl驱

Perl MongoDB 插入错误消息

我有以下数据库这是数据库中已有的对象{"_id":ObjectId("001"),"password":"test","user":"test"}东西添加到那个集合1.用户和密码的索引2.用户唯一索引当我尝试将相同的参数插入项目时my$enter=$db->data->insert({'user'=>'test','password'=>'test'});$enter返回一个ObjectID的值(如果用户重复,它应该得到一个错误消息而不是一个Objectid)通过mongoshellE11000重复键错误索引:dataofitem.user它显示错误但是当我尝试通过Perl模块时(ht

Perl Mongo 查找对象 ID

你会认为这是一件简单的事情。我有一个我收藏中的对象ID列表。我想根据对象ID获取一条记录。用谷歌搜索,但没有任何帮助。所以我有对象ID:5106c7703abc120a04070b34my$client=MongoDB::MongoClient->new;my$db=$client->get_database('myDatabase');my$id_find=$db->get_collection('mycollection')->find({},{_id=>MongoDB::OID->new(value=>"5106c7703abc120a04070b34")});printDump

Perl mongodb $collecton->find::在获取时到 mongodb 的往返次数是多少?

如果我的收藏有10条记录。my$records=$collection->find;while(my$record=$records->next){dosomething;}是否有10次往返mongodb服务器?如果是这样,有没有办法将其限制为一次往返?谢谢。 最佳答案 答案是,默认情况下,每批记录/文档仅以100条为一组返回一个查询。如果您的结果集是250个文档,第一次访问游标以获取文档1将在内存中加载文档1-100,当访问文档101时,这会导致从服务器加载另外100个文档,最后一个对最近50个文档的更多查询。请参阅有关游标和“g

windows - 使用 Microsoft VC (cl.exe) 2010 (10.0) Express 和 ActivePerl 5.12.4/32 构建 Perl/C 模块

我在使用标题中提到的配置时遇到了这个构建问题。我尝试构建的Perl模块是MongoDB::Connection。我正在通过CPANshell构建,或者像这样手动构建:C:\Opt\Perl512.32\bin\perl.exeMakefile.PLnmakecl.exe的命令行是:cl-c-I.-MD-Zi-DNDEBUG-DVERSION=\"0.43\"-DXS_VERSION=\"0.43\"^/Foxs/BSON.obj"-IC:\Opt\Perl512.32\lib\CORE"xs\BSON.c以下是错误代码及其频率:6C2040'operator':'identifier1

perl - 从 Perl 连接到 MongoDB 时出现编译错误

我正在尝试运行简单的“MongoDB:Tutorial”教程:http://search.cpan.org/dist/MongoDB/lib/MongoDB/Tutorial.pod我的目标是通过Perl脚本连接到MongoDB数据库。我已经使用cpanm安装了MongoDB:$sudocpanmMongoDBMongoDBisuptodate.(0.501.1)我创建了一个名为loadRaw.pl的简单Perl脚本:usestrict;usewarnings;useMongoDB;useMongoDB::Connection;useMongoDB::OID;print"hello\n