У меня есть коллекция с полем Date, которая заполняется приложением C # с использованием объекта DateTime.Это поле сериализовано в следующий формат: «2018-06-10T17: 32: 48.3285735Z».
Я не затрагивал политику индексирования в коллекции, поэтому в строках используется тип индекса Range.Из того, что я прочитал в документации, это самый эффективный способ индексации дат, однако, когда я использую поле Date в предложении ORDER BY, запрос потребляет как минимум в 10 раз больше RU, чем если бы я запрашивал с использованием метки времени(_ts) числовое поле.Это означает, что нужно платить в 10 раз больше за эту коллекцию.
Чтобы проиллюстрировать проблему:
SELECT TOP 100 * FROM c ORDER BY c.Date DESC
//query consumes a minimum of 500 RUs
SELECT TOP 100 * FROM c ORDER BY c._ts DESC
//query consumes 50 RUs
Это то, как это должно работать, или я что-то упустил?Я подозреваю, что если бы это было ожидаемое поведение, это было бы подчеркнуто в документации по индексу, и сохранение дат в виде чисел будет выделено как лучшая практика.
РЕДАКТИРОВАТЬ: Это политика индекса для коллекции (яникогда не менял).
{
"indexingMode": "consistent",
"automatic": true,
"includedPaths": [
{
"path": "/*",
"indexes": [
{
"kind": "Range",
"dataType": "Number",
"precision": -1
},
{
"kind": "Range",
"dataType": "String",
"precision": -1
},
{
"kind": "Spatial",
"dataType": "Point"
}
]
}
],
"excludedPaths": []
}