CouchDB:Erlang 函数列表

CouchDB: list of Erlang functions

本文关键字:列表 函数 Erlang CouchDB      更新时间:2023-09-26

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

再次在JS中进行文本修剪,我想:如果Couch已经内置了此功能怎么办?也许trim也集成了?有多少功能可供使用?

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

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


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

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

它们是_count的、_sum的和_stats的。您可以在此处找到更多详细信息和示例。它们在couch_query_server.erl文件中实现。

此外,您还可以使用内置的 Erlang 函数和功能来编写本机 Erlang 查询服务器。但请注意,默认情况下它是禁用的。

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

%% 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(。

编辑:此线程可能是可能已过时的重复项。