gpt4 book ai didi

node.js - 我将如何使用 Mongoose 创建和更新时间序列?

转载 作者:可可西里 更新时间:2023-11-01 10:02:52 26 4
gpt4 key购买 nike

我想遵循这个模式设计,因为它看起来很好:http://blog.mongodb.org/post/65517193370/schema-design-for-time-series-data-in-mongodb

理想情况下,我想记录在一分钟内每秒捕获数据的文档 - 就像他们早期的示例一样。

我遇到了 3 个不同的障碍:

1) 我不太确定架构应该是什么样子 - 目前我有这样的东西:

var mySchema = new mongoose.Schema({
timestamp_minute: String,
type: String,
values: [ Number ]
});

2) 'values' 数组的长度应为 60(以存储我们在一分钟内的一秒数据间隔数据点)。我将如何使用 0 预填充此数组?

3) 我该如何去更新这个数组。我想在我的 Node.js 中,因为我在第二次获得频繁且一致的更新,我可以只使用一个索引,该索引会递增,然后在 59 后重置。在尝试访问“值”时有没有办法使用这个索引,例如使用 mongoose 更新和 '$set: { 'values.' + 索引:myValue }'?

最佳答案

  1. 您的架构应该是:

    var mySchema = new mongoose.Schema({
timestamp_minute: Date,
type: String,
values: [ Number ]
});

  1. 您不必预先填充它。在 js 中,即使数组为空,你也可以设置任何你想要的索引。但是,如果您想这样做:

var mySchema = new mongoose.Schema({
timestamp_minute: Date,
type: String,
values: {
type: [ Number ],
default: function() { return Array(60).fill(0); }
}
});

  1. 是的。这就是您在文章中看到的方法。

关于node.js - 我将如何使用 Mongoose 创建和更新时间序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38703771/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com