У нас есть требование фильтровать объекты базы данных Azure Cosmos, используя поле даты и времени.Структура объекта выглядит следующим образом.
{
"nodeId": 3,
"nodeName": "HAVC",
"assetId": 2,
"assetName": "Chiller_02",
"assetMeasurementId": 22,
"assetMeasurementName": "CHL01_WATER_ENTER_TEMP",
"streamId": 0,
"streamName": null,
"deviceId": 4,
"deviceTagId": 48,
"rawTelemetryData": 49,
"observationPropertyId": 1,
"isActive": false,
"enqueueDatetime": "2019-05-31T07:17:45",
"receivedDatetime": "2019-06-03T18:51:16.6684284",
"id": "1e9fe261-5e73-4a64-8921-817a6c601ea0",
"_rid": "PfsxALhViWYWAAAAAAAAAA==",
"_self": "dbs/PfsxAA==/colls/PfsxALhViWY=/docs/PfsxALhViWYWAAAAAAAAAA==/",
"_etag": "\"0000f80f-0000-1800-0000-5cf51e930000\"",
"_attachments": "attachments/",
"_ts": 1559568019
}
В этом нам нужно запросить данные, используя поле «receiveDatetime», и нам нужны данные в диапазоне от '18: 51' до '18: 57 '* 1004.*
В C # мы используем синтаксис, аналогичный LINQ
var queryable = client.CreateDocumentQuery<TestDto>(
UriFactory.CreateDocumentCollectionUri(DatabaseId, CollectionId),
new { EnableCrossPartitionQuery = true })
.Where(x => x.receivedDatetime >= DateTime.Parse(startDate))
.Where(x => x.receivedDatetime <= DateTime.Parse(endDate))
.OrderBy(x => x.receivedDatetime)
.AsDocumentQuery();
Но мы не смогли получить данные, как ожидалось.Благодарим Вас за помощь