Javascript Azure DocumentDB(CosmosDB?)邮票发行
我有一个Azure DocumentDB集合,我正在通过事件中心触发的函数将时间戳文档写入其中。我正在写入文档的时间戳(my_timestamp)来自处理事件的函数,我已经确认它是准确的 我遇到的问题是,DocumentDB本身创建的Javascript Azure DocumentDB(CosmosDB?)邮票发行,javascript,azure,azure-cosmosdb,azure-functions,Javascript,Azure,Azure Cosmosdb,Azure Functions,我有一个Azure DocumentDB集合,我正在通过事件中心触发的函数将时间戳文档写入其中。我正在写入文档的时间戳(my_timestamp)来自处理事件的函数,我已经确认它是准确的 我遇到的问题是,DocumentDB本身创建的\u ts元数据时间戳显示了一个unix时间戳值,该值比我创建的时间戳早几秒,即。,它实际上应用的时间戳早于创建文档的函数执行的开始 这似乎是底层DocumentDB机制中的一个怪癖 不管怎样,我想看看是否还有其他人遇到这种差异。以下是我的文档中显示的时间戳: "m
\u 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);
另外,
\u 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以添加新文档。如果这个问题仍然存在,我认为您可以添加您的反馈。您也可以共享功能代码,以便我们可以看到
my_timestamp
是如何计算的?感谢@Bruce Chen提供的信息,这证实了我对_ts字段的理解。我仍然在经历这个问题,你的评论“我检查了这个问题,我遇到了一些相同的问题”与我有关;你知道为什么会发生这个问题吗?我将按照您的建议提交反馈,但这似乎是DocDB/CosmosDB中的一个潜在严重错误。。。