my $couchdb_view = "http://10.60.0.92:5984/_utils/document.html?$couchdb_database";
my $client = Mojo::UserAgent->new;
+our $view_cache;
+
sub _couchdb_put {
my ( $url, $data ) = @_;
+ $view_cache = undef;
+
$data->{'$entity'} = $1 if $url =~ m{/(\w+)\.\d+/$/};
my $json = Mojo::JSON->new->encode( $data );
# CouchDB proxy for _design _view
-our $view_cache;
-
get '/:database/_design/:design/_view/:view' => sub {
my $self = shift;
my $format = $self->param('format');
} elsif ( $format eq 'key_distinct' ) {
my $found;
- $json->{rows} = [ grep { $found->{ $_->{key} }++ == 1 } @{ $json->{rows} } ];
+ my @rows = grep {
+ push @{ $found->{ $_->{key} } }, $_->{id};
+ $#{ $found->{ $_->{key} } } == 0; # take just first registration
+ } @{ $json->{rows} };
+
+ $json->{rows} = [ map {
+ $_->{distinct_ids} = $found->{ $_->{key} };
+ $_;
+ } @rows ];
+
$json->{distinct_rows} = scalar @{ $json->{rows} };
warn "## distinct stats ", dump( $found );