Azure的CosmosDB - 删除日期范围内的所有文档

时间:2017-08-22 21:18:56

标签: date azure azure-cosmosdb nosql

我想删除2017-08-18和2017-08-22之间创建的所有文件。有人告诉我,所有文件都在字段'_ts'下有CosmosDB自己的时间戳。我尝试使用文档资源管理器使用此查询c._ts > "2017-08-18"过滤文档,但它不返回任何文档。我还尝试了c._ts > 2017-08-18没有引号但返回所有文档,甚至是那些日期之前的文档,就好像根本没有查询一样。看文件,我甚至没有看到'_ts'字段。有什么方法可以删除这些文件吗? 感谢。

2 个答案:

答案 0 :(得分:3)

_ts是Azure Cosmos DB的内部时间戳属性

  

_ts字段是表示日期和时间的unix样式的纪元时间戳。每次修改文档时都会更新_ts字段。

如果您想在日期范围内进行查询,我们可以使用udf功能轻松查询,更多详情请参阅另一个SO thread

SELECT * FROM c where udf.udfname(c._ts)>'2017-08-18'

udf功能

function epochToDate (ts) { 
   return new Date(ts*1000);
}

答案 1 :(得分:2)

根据 https://msdn.microsoft.com/en-us/library/azure/microsoft.azure.documents.resource.timestamp.aspx#P:Microsoft.Azure.Documents.Resource.Timestamp

_ts获取与Azure DocumentDB数据库服务中的资源关联的上次修改时间戳。

[JsonPropertyAttribute(PropertyName = "_ts")] [JsonConverterAttribute(typeof(UnixDateTimeConverter))] public virtual DateTime Timestamp { get; internal set; }

它表示为POSIX或纪元时间值。它是自1970年1月1日00:00:00(UTC)以来经过的秒数。