我有一组约会。我需要能够查询离现在最近的约会。
在Document DB / Cosmos DB中可以吗?
我最初的想法是使用ABS和Order by,所以像这样
SELECT * FROM c ORDER BY ABS(c.ScheduledTime - 1509562136)
其中1509562136是“现在”,但是宇宙不按顺序喜欢该表达式。
答案 0 :(得分:1)
为此,您必须执行渐进式查询,例如
#!/bin/bash
ssh localhost tail
然后在本地对查询结果进行排序,直到找到最近的约会。有关非常类似的实现,请参阅https://github.com/arramac/azure-documentdb-dotnet/blob/master/samples/Spatial/NearestNeighbor/Spatial/SpatialHelper.cs,但有关地理空间查询的信息。
由于Cosmos DB专为低内存占用(用于扩展)而设计,因此查询顺序仅从索引提供。因此,它不允许对表达式进行排序。