Cosmos DB Query文档的时间戳最接近现在

时间:2017-11-01 18:51:00

标签: azure-cosmosdb

我有一组约会。我需要能够查询离现在最近的约会。

在Document DB / Cosmos DB中可以吗?

我最初的想法是使用ABS和Order by,所以像这样

SELECT * FROM c ORDER BY ABS(c.ScheduledTime - 1509562136)

其中1509562136是“现在”,但是宇宙不按顺序喜欢该表达式。

1 个答案:

答案 0 :(得分:1)

为此,您必须执行渐进式查询,例如

#!/bin/bash
ssh localhost tail

然后在本地对查询结果进行排序,直到找到最近的约会。有关非常类似的实现,请参阅https://github.com/arramac/azure-documentdb-dotnet/blob/master/samples/Spatial/NearestNeighbor/Spatial/SpatialHelper.cs,但有关地理空间查询的信息。

由于Cosmos DB专为低内存占用(用于扩展)而设计,因此查询顺序仅从索引提供。因此,它不允许对表达式进行排序。