incubator-couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jeremy Smith <jeremyasm...@yahoo.com>
Subject Erlang reduce functions
Date Sun, 27 May 2012 15:33:03 GMT
Hi,

I am new to erlang, just started today, because we were advised to move some of our views
to native erlang views, I am trying to write a reduce function:

The Values its using seem to be in the form:
[[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1]]


so I have tried to do the following to get a count of all the 1's, but it only gives me the
count of the outermost lists (in the above case 3, instead of 60(ish))

My Reduce funtion:
fun(Keys, Values, ReReduce) -> lists:flatlength(Values) end.


My Map function looks like this:
fun({Doc}) ->
    Emitter = fun(Doc) ->
        Date           = proplists:get_value(<<"publish_date">>,   Doc),

        Year = string:substr(erlang:bitstring_to_list(Date), 1, 4),
        Emit(erlang:list_to_bitstring(Year), 1)
    end,

    HasRequiredFields = fun(Doc) ->
        case {proplists:is_defined(<<"a_number">>, Doc), proplists:is_defined(<<"publish">>,
Doc), proplists:is_defined(<<"publish_date">>, Doc)} of
            {true, true, true} ->
                Emitter(Doc);

            _->
                false
        end
    end,

    HasRequiredFields(Doc)
end.

Cheers
Jeremy
Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message