Apache-Session-MongoDB
view release on metacpan or search on metacpan
lib/Apache/Session/MongoDB.pm view on Meta::CPAN
}
}
else {
return 1;
}
}
sub _query {
my ( $class, $args, $filter, @fields ) = @_;
my $col = $class->_col($args);
my $cursor = $col->find($filter);
if (@fields) {
$cursor =
$cursor->fields( { map { $_ => 1 } @fields, "_session_id" => 1 } );
}
my %res;
while ( my $r = $cursor->next ) {
my $id = $r->{_session_id};
delete $r->{_id};
$res{$id} = $r;
}
return \%res;
}
sub get_key_from_all_sessions {
my ( $class, $args, $data ) = @_;
my $col = $class->_col($args);
my $cursor = $col->find( {} );
my %res;
while ( my $r = $cursor->next ) {
my $id = $r->{_session_id};
delete $r->{_id};
if ( ref($data) eq 'CODE' ) {
$res{$id} = $data->( $r, $id );
}
elsif ($data) {
$data = [$data] unless ( ref $data );
$res{$id}->{$_} = $r->{$_} foreach (@$data);
}
else {
( run in 0.243 second using v1.01-cache-2.11-cpan-4d50c553e7e )