我有一个 Azure DocumentDB 集合,我正在通过事件中心触发的函数向其中写入带时间戳的文档。 我写入文档的时间戳 (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);
最佳答案
据我所知,_ts
字段是一个unix风格的纪元时间戳,表示日期和时间,每次修改文档时都会更新它。
Anyway, I wanted to see if anyone else is encountering this discrepancy.
根据您的描述,我检查了这个问题,并且我多次遇到同样的问题。但是今天检查这个问题时,我无法重现这个问题,这是我的测试代码:
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 .
关于javascript - Azure DocumentDB(Cosmos DB?)时间戳问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44938271/