Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Индексируется ли _ts в документе documentdb?

Автор вопроса: D. SellОтветов: 1

Не лучше ли включить мою собственную временную метку (в миллисекундах) для запросов с более высокой производительностью, используя поиск МЕЖДУ на основе временной метки?

Из предыдущих постов я понял, что он представлен как количество секунд с 1970 года. Поскольку это основной элемент, я могу предположить, что он не индексируется.

  • Почему за это проголосовали? Larry Maccherone 30.08.2016

azure-cosmosdb

Ответы

Ответ 1 · рейтинг 5 · Krishnan Sundaram

_ts индексируется по диапазону и имеет максимальную точность (-1) по умолчанию в DocumentDB, если только пользователь не переопределил это явно. Поэтому вы можете выполнять к нему запросы диапазона.

Тем не менее, если вам нужна более детальная метка времени с миллисекундами, лучше всего использовать свой собственный атрибут более высокой точности. Например, вы можете использовать отметку времени в виде строки в формате ISO 8601, например "2016-08-29T21:48:38.334", и индексировать этот атрибут по диапазону. Это послужит двум целям: сделать дату и время удобочитаемыми для человека и эффективно выполнять запросы диапазона для этого атрибута. Пример запроса с этим атрибутом метки времени (названным, скажем, "createdTs") будет таким:

SELECT r.id FROM root r WHERE
r.createdTs > "2016-08-29T21:48:38.334" and r.createdTs < "2016-08-29T21:50:00.000"

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы