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;