我想从mnesia中只选择X个记录。我们有任何提供此功能的函数调用吗?
我正在使用:mnesia.select从mnesia表中获取所有记录,但我想从mnesia表中只获取X个记录:
Mnesia.transaction(fn ->
Mnesia.select(
Person,
[{{Person, :"$1", :"$2", :"$3"}, [{:>, :"$1", 3}], [:"$$"]}]
)
end)
我不确定你使用mnesia
的包装器,但是标准库提供了:mnesia.select/4
,其中第三个参数是要检索的多个记录。
也就是说,这样的事情会起作用:
x = 500
:mnesia.select(
:persons,
[{{:persons, :"$1", :"$2", :"$3"}, [{:>, :"$1", 3}], [:"$$"]}],
x,
:read
)
如果你使用像Memento
这样的包装器,那么使用limit
选项非常简单:
Memento.Query.select(Person, {:>, :"$1", 3}, limit: 100)
完全披露:我是Memento包的作者。