登录
首页 >  Golang >  Go问答

使用 Node.js 将 Go 生成的纳秒时间戳保存到 MongoDB 中

来源:stackoverflow

时间:2024-03-14 17:54:26 310浏览 收藏

本篇文章主要是结合我之前面试的各种经历和实战开发中遇到的问题解决经验整理的,希望这篇《使用 Node.js 将 Go 生成的纳秒时间戳保存到 MongoDB 中》对你有很大帮助!欢迎收藏,分享给更多的需要的朋友学习~

问题内容

我正在尝试将 Unix 时间戳(以纳秒为单位)存储到 Mongodb 数据库的 Date 类型字段中。

以纳秒为单位的unix时间戳是在Go程序中生成的(使用time.Now().UnixNano()),提交给Kafa以由Node.js脚本读取,该脚本使用mongoose写入包含以下内容的有效负载对象: Mongodb 存储的 unix 时间戳(以纳秒为单位)。

但是这会引发错误

UnhandledPromiseRejectionWarning:ValidationError:交易验证失败:时间戳:路径“时间戳”处的值“1544720051987010000”转换为日期失败

是否有更好的方法在 Mongodb 中存储以纳秒为单位的 unix 时间戳?


解决方案


我正在尝试将 unix 时间戳(以纳秒为单位)存储到日期类型中 mongodb 数据库的字段。尼希尼克斯

那是行不通的。

在内部,date 对象存储为带符号的 64 位整数 表示自 unix 纪元(1 月 1 日, 1970)。

MongoDB Reference: Date()

例如,

package main

import (
    "fmt"
    "time"
)

func main() {
    timestamp := time.now().unixnano() / int64(time.millisecond)
    fmt.println(timestamp)
}

演示:https://play.golang.org/p/21S_DeVA4jv

输出:

1257894000000

要存储 unix 纳秒,请使用长数据类型。

好了,本文到此结束,带大家了解了《使用 Node.js 将 Go 生成的纳秒时间戳保存到 MongoDB 中》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>