2017-02-08 20 views
0

Я понимаю, что есть limitation with App Engine's datastore cursor Мне любопытно, как людям удается получить результирующие наборы под этим ограничением.Нужны идеи для управления результатами запроса (курсором) с операциями неравенства

Мой сценарий заключается в том, что мне нужно выполнить запрос как с оператором «или», так и с NOT_EQUAL несколько раз. Однако, поскольку курсор является нулевым, я не могу получить следующий набор записей.

P.S. Я также использую Objectify, но не нашел никакой документации, существует ли метод обхода Objectify.

Спасибо!

ответ

1

Для запросов с NOT_EQUAL вы можете удалить этот конкретный элемент из запроса, чтобы сделать его способным к курсору и реализовать эквивалентную проверку в коде обработки объекта результата (т.е. пропустить обработку объекта, если соответствующее условие EQUAL истинно, для пример).

Для решения or ограничения можно выполнить несколько отдельных курсоры с поддержкой запросов для каждого из or элементов и сделать результат сущность коды обработки идемпотента либо:

  • отслеживания или маркировки обработанных объектов для того, чтобы лица, появляющиеся в нескольких отдельных результатах запроса обрабатываются только один раз
  • , имеющий код обработки дает одинаковый результат, даже если предприятие обрабатывается несколько раз

2 метода можно комбинировать при необходимости - как в вашем случае.

Конечно, они не являются ни удобными, ни эффективными, как без ограничения курсора;)