【发布时间】:2016-05-27 06:37:31
【问题描述】:
我的每个文档中都有一个timestamp 字段。时间戳采用ISODate 格式。有什么方法可以在 Document Explorer 或 Query Explorer 中使用它对数据进行排序?
【问题讨论】:
标签: azure azure-cosmosdb
我的每个文档中都有一个timestamp 字段。时间戳采用ISODate 格式。有什么方法可以在 Document Explorer 或 Query Explorer 中使用它对数据进行排序?
【问题讨论】:
标签: azure azure-cosmosdb
每个文档都有一个名为“_ts”的默认时间戳字段。 例如,您可以使用以下查询获取最后一个文档:
SELECT * FROM c ORDER BY c._ts DESC
【讨论】:
_ts 字段吗?
ISODate 格式将时间戳存储为string。这是因为我发这个问题的时候他们的sdk没有让我直接使用jsDate对象
如果您的 ISO 日期字符串字段具有全精度 (-1) 索引,则 ORDER BY 会按预期工作。
【讨论】:
将日期存储为纪元,而不是 ISO 日期。如果您需要文档中的可读日期,您可以同时存储两者。
看到这个https://azure.microsoft.com/en-us/blog/working-with-dates-in-azure-documentdb-4/
- 根据评论和拉里的回答,您可以使用精度为 -1 的范围索引(范围索引的要求)。您可以将门户中的索引要求设置为 json 或代码。
new IncludedPath {
Path = "/your_iso_property_path" ,
Indexes = new Collection<Index> {
new RangeIndex(DataType.String) { Precision = -1 }
}
});
更多详情请见https://azure.microsoft.com/nb-no/documentation/articles/documentdb-indexing-policies/
如果您使用 API 或之前使用门户创建了集合,则字符串的默认索引将是哈希索引。
【讨论】: