CouchDB:Erlang 函数列表

CouchDB: list of Erlang functions

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

又在JS中做文本裁剪,我想:如果Couch已经内置了这个功能怎么办?也许 trim 也整合了?有多少功能可以使用?

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

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


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

CouchDB has three built-in reduce functions. These are implemented in Erlang and run right inside CouchDB, so they are much faster than the equivalent JavaScript functions.

它们是 _count_sum_stats。您可以在 here. They are implemented in couch_query_server.erl 文件中找到更多详细信息和示例。

您还可以使用 built-in Erlang 函数和特性,编写 Native Erlang Query Server。但请注意,默认情况下它是禁用的。

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(模块函数元数)。

编辑: This thread 可能是重复项,但似乎已过时。