在 MongoDB 中保存纳秒时间戳(由 Go 生成,使用 Node.js 保存)
Saving Nanosecond Timestamps in MongoDB (Generated by Go, Saved using Node.js)
我正在尝试将以纳秒为单位的 Unix 时间戳存储到 Mongodb 数据库的 Date
类型字段中。
以纳秒为单位的 unix 时间戳在 Go 程序中生成(使用 time.Now().UnixNano()
),提交给 Kafa 以供使用 mongoose
写入负载的 Node.js 脚本读取Mongodb 存储中包含以纳秒为单位的 unix 时间戳的对象。
然而这是一个错误
UnhandledPromiseRejectionWarning: ValidationError: trade validation failed: timestamp: Cast to Date failed for value "1544720051987010000" at path "timestamp"
有没有更好的方法在 Mongodb 中以纳秒为单位存储 unix 时间戳?
I am trying to store Unix timestamps in nanoseconds into the Date type
field of a Mongodb database. Nyxynyx
那是行不通的。
Internally, Date objects are stored as a signed 64-bit integer
representing the number of milliseconds since the Unix epoch (Jan 1,
1970).
例如,
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 纳秒,请使用 long 数据类型。
我正在尝试将以纳秒为单位的 Unix 时间戳存储到 Mongodb 数据库的 Date
类型字段中。
以纳秒为单位的 unix 时间戳在 Go 程序中生成(使用 time.Now().UnixNano()
),提交给 Kafa 以供使用 mongoose
写入负载的 Node.js 脚本读取Mongodb 存储中包含以纳秒为单位的 unix 时间戳的对象。
然而这是一个错误
UnhandledPromiseRejectionWarning: ValidationError: trade validation failed: timestamp: Cast to Date failed for value "1544720051987010000" at path "timestamp"
有没有更好的方法在 Mongodb 中以纳秒为单位存储 unix 时间戳?
I am trying to store Unix timestamps in nanoseconds into the Date type field of a Mongodb database. Nyxynyx
那是行不通的。
Internally, Date objects are stored as a signed 64-bit integer representing the number of milliseconds since the Unix epoch (Jan 1, 1970).
例如,
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 纳秒,请使用 long 数据类型。