如何从 mnesia 中仅选择 X 条记录

nit*_*588 3 erlang mnesia elixir

我只想从 mnesia 中选择 X 条记录。我们是否有任何提供此功能的函数调用?

我正在使用 :mnesia.select 从 mnesia 表中获取所有记录,但我只想从 mnesia 表中获取 X 条记录:

Mnesia.transaction(fn ->
  Mnesia.select(
    Person,
    [{{Person, :"$1", :"$2", :"$3"}, [{:>, :"$1", 3}], [:"$$"]}]
  )
end)
Run Code Online (Sandbox Code Playgroud)

Ale*_*kin 5

我不确定mnesia你使用什么包装器,但标准库提供:mnesia.select/4了第三个参数是要检索的记录数。

也就是说,这样的事情会起作用:

x = 500

:mnesia.select(
  :persons,
  [{{:persons, :"$1", :"$2", :"$3"}, [{:>, :"$1", 3}], [:"$$"]}],
  x,
  :read
)
Run Code Online (Sandbox Code Playgroud)