CouchDB:Erlang函数列表

时间:2016-01-11 13:22:21

标签: javascript erlang couchdb trim seamonkey

据我所知,CouchDB允许使用一些集成的Erlang函数,如sort(和其他东西)。

再次在JS中进行文本修剪,我想:如果Couch已经构建了这个功能怎么办?也许trim也整合了?有多少功能可以使用?

如果它们已经在Erlang中完成,为什么我必须使用慢速JS版本?

那么,这就是我的问题:我在哪里可以找到Couch JS函数的完整列表?

结论:它只有少数功能可用而且没有trim。您可以在couch_query_server.erl编写自己的函数,然后从源代码重建Couch来测试您的运气。

1 个答案:

答案 0 :(得分:2)

  

CouchDB有三个内置的reduce函数。它们在Erlang中实现并在CouchDB中运行,因此它们比等效的JavaScript函数快得多。

他们是_count_sum_stats。您可以找到更多详细信息和示例here。它们在couch_query_server.erl文件中实现。

此外,您可以使用内置的Erlang功能和功能编写 Native Erlang Query Server 。但请注意,默认情况下它已被禁用。

用于实现本机Erlang查询服务器的CouchDB文档示例:

%% Map Function
fun({Doc}) ->
  <<K,_/binary>> = proplists:get_value(<<"_rev">>, Doc, null),
  V = proplists:get_value(<<"_id">>, Doc, null),
  Emit(<<K>>, V)
end.

%% Reduce Function
fun(Keys, Values, ReReduce) -> erlang:length(Values) end.

它使用Erlang标准库中的proplists:get_value/3erlang:length/1 MFA(模块功能Arity)。

修改: This thread可能是一个可能重复的内容,似乎已过时。