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/3
和 erlang:length/1
MFA(模块函数元数)。
编辑: This thread 可能是重复项,但似乎已过时。
据我所知,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/3
和 erlang:length/1
MFA(模块函数元数)。
编辑: This thread 可能是重复项,但似乎已过时。