Hi Monks,
i have some code that works pretty fine with MongoDB v0.705.0.0 :
use Data::Dumper;
use DateTime::Format::Strptime;
use POSIX qw(strftime);
use MongoDB;
use Data::Structure::Util qw( unbless );
use strict;
use warnings;
my $mongoclient = MongoDB::MongoClient->new(
host => '127.0.0.1', port => 27017
);
my $db = $mongoclient->get_database('database');
my $collect = $db->get_collection('collection')->aggregate([
{'$group' => {
'_id' => {_path => '$path' , _ip => '$IP', _time => '$TIME'},
'_count' => { '$sum' => 1},
'_docs' => { '$push' => '$_id' }
}
},
{ '$match' => {
'_count' => { '$gt' => 1}
}}
]);
my $mongo_aggregate = unbless $collect;
my @out = (@$mongo_aggregate);
print Dumper @out;
I receive a few thousand results what is expected and checked in database....so far so good...On another system with MongoDB v1.2.2 i receive only 101 results:
use Data::Dumper;
use DateTime::Format::Strptime;
use POSIX qw(strftime);
use MongoDB;
use Data::Structure::Util qw( unbless );
use strict;
use warnings;
my $mongoclient = MongoDB::MongoClient->new(
host => '127.0.0.1', port => 27017
);
my $db = $mongoclient->get_database('database');
my $collect = $db->get_collection('collection')->aggregate([
{'$group' => {
'_id' => {_path => '$path' , _ip => '$IP', _time => '$TIME'},
'_count' => { '$sum' => 1},
'_docs' => { '$push' => '$_id' }
}
},
{ '$match' => {
'_count' => { '$gt' => 1}
}}
]);
my $mongo_aggregate = unbless $collect->{'_docs'};
my @out = (@$mongo_aggregate);
print Dumper @out;
If i dump my $collect i found a hint that says: '_batch_size' => 101
I believe thats the point where im stucking. I dont know how to solve the issue nor i can fix that with documentation (as im advanced beginner). Can someone please shed some light on me, please.
Thanks,
regards,