2015-02-04 3 views
3

У меня есть коллекция. Моя коллекция содержит 30 000 000 документов. Я хочу получить все его посредством AQL-запроса. Я делаю так:Как получить более 1000 документов из коллекции ArangoDB?

FOR c FROM MyCollection SORT c.value ASC LIMIT 30000000 RETURN c.id

Но я не получаю больше 1001 документов. Зачем?

+0

Какой драйвер/API вы используете? Интерфейс курсора использует партии 1000 для передачи клиенту. – fceller

+0

Я использую стандартный веб-интерфейс, который позволяет выполнять запросы AQL. Как я могу получить весь документ в этом случае? – jonua

ответ

5

Редактор AQL в веб-интерфейсе имеет блок выбора внизу, который позволяет указать максимальное количество документов для приема. Выбранное значение по умолчанию равно 1000, поэтому будет выбрано только 1000 документов.

Вы можете увеличить число до 5000 результатов, используя поле выбора. Это значение является произвольным пределом, однако оно защищает вас от таких действий, как попытка получить 30M-документы в ваш браузер, что является операцией, которая не будет работать (у вашего браузера, скорее всего, не хватит памяти или он остановится при попытке отобразить HTML для строк 30M).

+0

Означает ли это, что если я не буду устанавливать максимальное число более 1000, курсор никогда не даст мне больше 1000 независимо от того, что? Я думал, что курсор разделит результат на несколько партий, у каждого есть предел 1000 документов? –

+0

Курсоры имеют размер партии 1000 по умолчанию. Если запрос дает больше результатов, курсор может извлекать их все с использованием нескольких партий. Это также то, как работают большинство наших драйверов. Тем не менее, веб-интерфейс в 3.1 и ранее, кажется, извлекает все результаты запроса с использованием одной партии и использует заданный пользователем предел результата в качестве размера партии. Это изменилось в 3.2: веб-интерфейс теперь будет получать результаты в партиях 1000. Мы по-прежнему ограничиваем количество результатов в веб-интерфейсе по умолчанию, чтобы защитить браузер пользователя от взлома при извлечении и отображении огромных результатов запроса. – stj

+0

Я предложил моему коллеге сохранить предел результата (например, «1000 результатов» или «все результаты») в локальном хранилище, чтобы выбор запоминался автоматически и не нужно постоянно настраивать. Я думаю, что это может быть реализовано для 3.2beta2. – stj