blob: e4cc5b1267cb4822f7784b4e686ee541b8c2c88a (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
package GitHub::Collector::Role::MongoDB;
use Moose::Role;
use MongoDB;
has mongodb => (
is => 'ro',
isa => 'Object',
lazy => 1,
default => sub {
my $self = shift;
my $conn =
MongoDB::Connection->new( timeout => 60000, query_timeout => 60000 );
my $db = $conn->github;
$self->_create_indexes($db);
return $db;
},
handles => {
db_profiles => 'profiles',
db_repositories => 'repositories',
db_relations => 'relations',
db_contributors => 'contributors',
db_edges => 'edges',
}
);
sub _create_indexes {
my ( $self, $db ) = @_;
$db->profiles->ensure_index( { login => 1 }, { unique => 1 } );
$db->repositories->ensure_index( { uniq_name => 1 }, { unique => 1 } );
$db->contributors->ensure_index( { project => 1 } );
$db->contributors->ensure_index( { owner => 1 } );
$db->relations->ensure_index( { source => 1 } );
$db->relations->ensure_index( { target => 1 } );
$db->relations->ensure_index( { login => 1 } );
$db->edges->ensure_index({source => 1});
$db->edges->ensure_index({target => 1});
}
1;
|