WedX - журнал о программировании и компьютерных науках

Возможен запрос DocumentDb как с упорядочением, так и с пейджингом на стороне сервера?

Я пишу API, чтобы клиент мог использовать упорядоченные по времени данные. Их много (более 10 тыс. записей на клиента), поэтому я не хочу сбрасывать все это обратно клиенту и заказывать там, поэтому мне нужно и заказывать, и выводить на сервер. У меня работает пейджинг, но я не вижу, как добавить порядок.

Я видел рекомендации по сортировке на клиенте, но, учитывая потенциальный объем данных, в этом случае это не сработает. Есть ли обходной путь?

Вот что у меня есть до сих пор:

var options = new FeedOptions {
    MaxItemCount = 25,
    RequestContinuation = continuationToken
}
var query = String.Format("SELECT * FROM TimelineEvent t WHERE t.acc_id = '{0}' AND t.removed != true", accountId); 
// ORDER BY in the query text doesn't appear to work
var events = client.CreateDocumentQuery<TimelineEvent>(colSelfLink, query, options).AsDocumentQuery();
var response = await query.ExecuteNextAsync<TimelineEvent>();

Ответы:


1

Он не поддерживается из коробки, но вы можете реализовать хранимую процедуру, которая делает это.

Группа продуктов msft предоставила несколько примеров кода здесь: https://code.msdn.microsoft.com/windowsazure/Azure-DocumentDB-NET-Code-6b3da8af/sourcecode?fileId=132409&pathId=34503205

Посмотрите под скриптом на стороне сервера, папкой JS, вы увидите скрипт «orderby», который делает это. Приспособьтесь к своим потребностям и попробуйте.

17.01.2015
  • Кстати, эта возможность запланирована, как опубликовано здесь: feedback.azure.com/forums/263030-documentdb/suggestions/ 17.01.2015
  • Спасибо, это выглядит великолепно. Я буду исследовать дальше в течение недели. 17.01.2015

  • 2

    ORDER BY теперь официально поддерживается DocumentDB

    https://azure.microsoft.com/en-us/documentation/articles/documentdb-orderby/

    30.07.2015
  • Тем не менее, нет SKIP / TAKE. 08.10.2015
  • Новые материалы

    Объяснение документов 02: BERT
    BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

    Как проанализировать работу вашего классификатора?
    Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

    Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
    Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

    Учебные заметки: создание моего первого пакета Node.js
    Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

    Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
    Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..


    Для любых предложений по сайту: [email protected]