Как выбрать только X количество записей из мнезии - PullRequest
0 голосов
/ 01 марта 2019

Я хочу выбрать только X записей из mnesia.Есть ли у нас какой-либо вызов функции, обеспечивающий эту функциональность?

Я использую: mnesia.select для извлечения всех записей из таблицы mnesia, но я хочу получить только X количество записей из таблицы mnesia:

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

Ответы [ 2 ]

0 голосов
/ 02 марта 2019

Если вы используете обертку, например Memento, с помощью опции limit это довольно просто:

Memento.Query.select(Person, {:>, :"$1", 3}, limit: 100)

Полное раскрытие информации: Я являюсь автором пакета Memento.

0 голосов
/ 02 марта 2019

Я не уверен, какую оболочку для mnesia вы используете, но стандартная библиотека предоставляет :mnesia.select/4, где третий параметр - это количество записей для извлечения.

При этомчто-то вроде этого будет работать:

x = 500

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