【发布时间】:2022-11-10 14:50:33
【问题描述】:
我正在尝试在 MongoDB 时间序列集合中保存一个条目,但我无法正确存储 timeField,mongo 抛出错误。
MongoServerError: 'blockTime' must be present and contain a valid BSON UTC datetime value
如何将 Date 对象转换为 BSON UTC 日期时间?
下面是架构
import mongoose from "mongoose";
const tradeSchema = new mongoose.Schema(
{
blockTime: {
type: Number,
},
},
{
timeseries: {
timeField: "blockTime",
},
}
);
const Trade = mongoose.model("trade", tradeSchema);
export default Trade;
下面是产生错误的代码
const newTrade = new Trade({
blockTime: new Date().valueOf(),
});
await newTrade.save();
【问题讨论】:
-
尝试使用日期对象的
valueOf方法返回的值。new Date().valueOf()返回自 Unix 纪元开始以来的毫秒数。我希望 MongoDB 的(JS)驱动程序接受 JavaScript 数字作为输入。 -
我仍然收到错误
MongoServerError: 'blockTime' must be present and contain a valid BSON UTC datetime value
标签: javascript node.js mongodb