我有一个Azure DocumentDB集合,我正在通过Event Hub触发的函数编写带时间戳的文档。 我写入文档的时间戳(my_timestamp)来自处理事件的函数,我已经确认它是准确的。
我遇到的问题是DocumentDB创建的_ts
元数据时间戳显示的是一个unix时间戳值,它是我正在创建的时间戳之前的秒数,即它实际上是在应用一个时间戳,它早于创建文档的函数执行的开始......
看起来这可能是基础DocumentDB机制中的一个怪癖。
无论如何,我想知道是否有其他人遇到这种差异。以下是我在文档中出现的时间戳:
"my_timestamp": 1499301915, // here's my timestamp that originates from the Azure Function
"_ts": 1499301899 // and here's the timestamp created by DocDB?
用于在Azure功能中导出my_timestamp
的代码:
var timeStamp = + Math.floor(new Date().getTime() / 1000);
答案 0 :(得分:3)
AFAIK,_ts
字段是表示日期和时间的unix样式的纪元时间戳,每次修改文档时都会更新。
无论如何,我想知道是否有其他人遇到这种差异。
根据您的描述,我检查了这个问题,并且我有时遇到了同样的问题。但是当我今天检查这个问题时,我无法重现这个问题,这是我的测试代码:
<强>的Javascript 强>
var doc={
timestamp:Math.floor(new Date().getTime() / 1000)
};
context.bindings.outputDocument = doc;
setTimeout( function() {
context.res={
status:200,
body:JSON.stringify(doc)
};
context.done();
}, 10*1000);
通过Azure验证资源管理器中的查询结果:
另外,我已经使用azure函数C#模板和DocumentDB客户端SDK检查了添加新文档。如果此问题仍然存在,我认为您可以添加反馈here。