Skip to content

Instantly share code, notes, and snippets.

@AlexMocioi
Created January 22, 2014 11:01
Show Gist options
  • Save AlexMocioi/8556924 to your computer and use it in GitHub Desktop.
Save AlexMocioi/8556924 to your computer and use it in GitHub Desktop.
De la versiunea 1.4 în sus, CouchDB permite cuplarea unei funcții LIST și cu view-ul _all_docs care dă pe țeavă toate înregistrările din bază! Asta este un lucru bun pentru că cuplarea unei funcții LIST cu un view scris de utilizator înseamnă parcurgerea a doi arbori: prima dată a B-tree-ului view-ului (indexului) și a doua oară, pe sărite , în …
fun(Head, {Req}) ->
Send(<<"[">>),
Fun = fun({Row}, Virgula) ->
Send(Virgula),
case proplists:get_value(<<"doc">>, Row) of
{Doc} ->
%% mă asigur că nu trimit altceva decât documente de tip "localitate"
%% și nu am primit din view și vreun document de tip _design
Elocalitate = proplists:is_defined(<<"Siruta">>, Doc),
if
Elocalitate ->
Campuri = [
proplists:get_value(<<"_id">>, Doc),
proplists:get_value(<<"Nume">>, Doc),
proplists:get_value(<<"Siruta">>, Doc),
proplists:get_value(<<"Județ">>, Doc)
],
Send(iolist_to_binary(mochijson2:encode(Campuri))),
{ok, <<",">>};
true ->
{ok,Virgula}
end;
_ ->
{ok, <<",">>}
end
end,
{ok, _} = FoldRows(Fun, <<"">>),
<<"]">>
end.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment