每個文檔包含存儲日期屬性時顯示,所以如何獲取存儲在特定日期或兩個日期之間的數據。做這個的最好方式是什麼。我的實現基於Java。提前致謝。Azure DocumentDB - 如何從特定日期的集合中獲取文檔?
0
A
回答
0
我沒有Java代碼,但是您必須將您的集合設置爲在DateTime字符串上使用Range索引,然後您才能查詢某個時間範圍內的日期。在.NET代碼是建立索引的範圍是:
DocumentCollection collection = new DocumentCollection { Id = "orders" };
collection.IndexingPolicy = new IndexingPolicy(new RangeIndex(DataType.String) { Precision = -1 });
await client.CreateDocumentCollectionAsync("/dbs/orderdb", collection);
見https://docs.microsoft.com/en-us/azure/documentdb/documentdb-working-with-dates#indexing-datetimes-for-range-queries和搜索範圍https://docs.microsoft.com/en-us/azure/documentdb/documentdb-indexing-policies此頁面上。
0
僅使用Azure DocumentDB SDK for Java通過_ts
屬性查詢文檔。文檔_ts
屬性如下。
_ts:這是系統生成的屬性。它指定資源的最後更新時間戳。該值是一個時間戳。
這是我的示例代碼如下。其次是_ts
單位。
// Initialize a DocumentDb client.
String serviceEndpoint = "https://<your-documentdb-name>.documents.azure.com:443/";
String masterKey = "<your-documentdb-key>";
DocumentClient client = new DocumentClient(serviceEndpoint, masterKey, ConnectionPolicy.GetDefault(), ConsistencyLevel.Session);
// Get a collection link via collection id.
String collId = "<collection-Id>";
String query = String.format("SELECT * from ROOT r WHERE r.id = '%s'", dcId);
FeedOptions options = null;
List<DocumentCollection> dcs = client.queryCollections(dbLink, query, options).getQueryIterable().toList();
String collLink = dcs.size() >0 ? dcs.get(0).getSelfLink() : null;
// Generate a query string, see below.
.......
client.queryDocuments(collection.getSelfLink(), query, null);
查詢字符串用於讀取存儲在特定的日期數據:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String dateStr = "2017-03-01";
long timestamp = sdf.parse(dateStr).getTime()/1000;
String query = String.format("select * from c where c._ts = %d", timestamp);
查詢字符串爲取存放兩個日期之間的數據:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String startDateStr = "2017-03-01";
String endDateStr = "2017-03-31";
long tsStart = sdf.parse(startDateStr).getTime()/1000;
long tsEnd = sdf.parse(endDateStr).getTime()/1000;
String query = String.format("select * from c where c._ts >= %d and c._ts <= %d", tsStart, tsEnd);
相關問題
- 1. 如何從特定日期獲取最新文檔?
- 2. 如何獲取在Azure DocumentDB中創建的最新文檔
- 3. 如何從DocumentDb中的集合中刪除文檔?
- 4. 如何使用node.js獲取documentdb集合中的最後一個文檔
- 5. 從集合中刪除特定文檔
- 6. Azure DocumentDB獲取集合中的分區鍵值
- 7. 在Azure DocumentDB中,如何獲取集合中所有屬性的列表?
- 8. 如何統計所有文檔,azure DocumentDB
- 9. 在存儲過程中獲取多個文檔(Azure DocumentDB)
- 10. 如何在MongoDB集合中獲取特定的嵌入式文檔?
- 11. Excel - 如何獲取日期是一週中的特定日期?
- 12. 如何獲得特定一週中特定日期的日期
- 13. 從Lucene獲取日期對象文檔
- 14. 查詢Azure DocumentDB中的子集合的子集合
- 15. 如何在django中從mongodb中獲取特定集合
- 16. 使用Serilog.Sinks.AzureDocumentDB丟失Azure DocumentDB中的日誌文檔
- 17. 如何從mongo中的子文檔獲取特定值
- 18. 如何從特定時區的Java日期字段獲取日曆日期?
- 19. 使用oracle從一系列日期中獲取特定日期
- 20. 如何從列表集合中獲取特定元素?
- 21. 如何獲取特定日期的日期範圍
- 22. 如何使用PHP獲取特定日期的日期
- 23. PHP獲取特定日期
- 24. Azure DocumentDB對嵌套文檔的ARRAY_CONTAINS
- 25. 特定日期後鎖定Excel文檔
- 26. 從Azure中部署的App API無法訪問Azure中的DocumentDB集合
- 27. laravel carbon從集合中的日期列中獲取日期名稱
- 28. 獲取特定工作日的日期
- 29. 如何重命名文檔數據庫中的集合?
- 30. 在mongo集合中獲取mongo文檔數組中的不同特定元素