我不知道如何选择。
{
"inserted": "2022-11-22T17:40:40.0303547Z",
"packagekey": "b53b8bfb-68b7-4ad1-aacb-b5868d4b4657",
"ismoved": true,
"geometry": {
"type": "Point",
"coordinates": [
16.788592,
54.454656
]
},
"id": "659b284c-febe-4428-bda7-9a356e9a7b3b",
"partionkey": "b53b8bfb-68b7-4ad1-aacb-b5868d4b4657",
"key": "9455c529-8acb-41d0-b543-9fe59b187a25",
"type": "Feature",
"properties": {
"ProductKey": "00000000-0000-0000-0000-000000000000",
"ProductName": "",
"LogicalInventoryKey": "00000000-0000-0000-0000-000000000000",
"LogicalInventoryName": "",
"WorkOrderKey": "00000000-0000-0000-0000-000000000000",
"WorkOrderItemKey": "00000000-0000-0000-0000-000000000000",
"IsMoved": false
}
}
我有很多这样的对象,
packagekey
表示一个包裹,geometry
是一个位置。每个包裹有 1 个或多个位置。
如何选择某个位置上的所有包(每个包都有一个包密钥)我使用类似的地方
where ST_DISTANCE(c.geometry, {'type':'Point', 'coordinates':[16.788592, 54.454656]}) <= 1
但我想要所有具有最新位置的包裹,并且最高插入日期是最新的。
经验不多,但请告诉我结果?
SELECT TOP 1 * FROM c
WHERE c.inserted = (SELECT MAX(c2.inserted) FROM c c2)
ORDER BY c.inserted DESC
这里c代表集合中文档的别名。我们使用 TOP 1 子句仅检索最新的包,然后插入的属性等于集合中的最大插入值。结果是按降序插入的。