#!/usr/bin/perl -T

use strict;
use warnings;

use Time::HiRes qw( time );
use Value::Convertor;
use Mentat::Storage::Mongo;

my ($min, $max) = Value::Convertor->ipv4cidr_to_bins("158.196.158.0", 24);
$min = MongoDB::BSON::Binary->new(data => $min, subtype => 0);
$max = MongoDB::BSON::Binary->new(data => $max, subtype => 0);

my $filter = {
		'Alert.Source.Node.Address.ipv4.min' => {
			'$gte' => $min,
		},
		'Alert.Source.Node.Address.ipv4.max' => {
			'$lte' => $max,
		},
		'Alert.Classification.@text' => 'Webattack',
	};

my $storage = Mentat::Storage::Mongo->new(database => 'mentat', collection => 'alerts');
my ($results, $count);

my $start = time;

################################################################################
# OPTION A
################################################################################

($results, $count) = $storage->find($filter);

################################################################################
# OPTION B
################################################################################

#my ($cursor, $cnta) = $storage->find_i($filter);
#while (my $doc = $cursor->next) {
#	push(@$results, $doc);  $count++;;
#}

################################################################################
my $end = time;
print STDERR "DURATION: ".($end-$start).", COUNT: $count\n";

