我们需要使用datetime字段过滤Azure Cosmos DB的对象。对象的结构如下。
{
"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
}
在这种情况下,我们需要使用“ receivedDatetime”字段查询数据,并且需要介于“ 18:51”到“ 18:57”之间的数据
在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();
但是我们无法收到预期的数据。感谢您能否提供一些支持
答案 0 :(得分:1)
您可以检查此-DateTime, the Epoch and DocumentDb您必须以ISO-8601日期/时间格式存储ReceivedDatetime
答案 1 :(得分:1)