У меня есть пара элементов, одно из которых - это временная метка unix, основанная на UTC, умноженная на 1000, чтобы включить миллисекунды, сохраняя при этом значение long
(целое число).Значение смещения перед группировкой
{
"title" : "Merkel 'explains' refugee convention to Trump in phone call",
"iso" : "2017-01-31T04:03:53.807+0000",
"id" : NumberLong(1485835433807)
}
{
"title" : "NASA to Explore an Asteroid Containing Enough Mineral Wealth to Collapse the World Economy",
"iso" : "2017-01-30T23:20:27.327+0000",
"id" : NumberLong(1485818427327)
}
{
"title" : "IMGKit: Python library of HTML to IMG wrapper",
"iso" : "2017-01-30T23:15:39.488+0000",
"id" : NumberLong(1485818139488)
}
iso
поле только текстовая строка для облегчения отладки, она не имеет никакой другой цели.
Я намерен использовать метод, описанный в https://stackoverflow.com/a/26550803/277267, для повторной выборки элементов, чтобы создать сводку элементов в день, изначально просто количество, если количество элементов в день.
Проблема в том, что временная метка (поле "id"
) не может быть использована для архивирования этого из-за смещения UTC. В зависимости от местоположения пользователя (или локального времени вставки, то есть 00:30 по местному времени по 23:30 по воскресеньям UTC, если часовой пояс + 1 час), элемент будет принадлежать либо одному или другому, так что поле не хватает этой информации.
Предполагая, что я просто хочу, чтобы добавить смещение к "id"
полю, то есть на 3600000, который один час выражается в миллисекундах, прежде чем начать повторную выборку данных на основе "id"
поля, как я могу АРХИВ это в трубопроводе агрегации ?
Есть ли способ получить первый этап, который принимает значение поля "id"
, добавьте 3600000 к этому значению и сохраните его в поле "id_offsetted"
, на котором я могу выполнить следующие этапы?
Я не после вашего рассуждения за хранение даты как numberlong, так как объект дата достаточно точен, чтобы включить миллисекунды. –
Это решение проблем производительности на клиентах (Java и JavaScript). Я имею дело с 10 из 1000 пунктов за выборку, секунды времени ожидания для пользователя имеют значение. Кроме того, поле '' id ''является уникальным хешируемым, сортируемым и индексируемым ключом (для каждого пользователя) –
Скорее всего, ваша причина для загрузки 10 000 + документов в память не является хорошей. Работа, которую ваша Java/JavaScript пытается сделать с этими записями, должна выполняться в запросах. –