温度记录器每 1 秒记录一次温度,并使用 Meteor.js 实时图表显示过去 5 秒的平均温度。
将每个单独的温度读数保存为新的 Mongodb 文档是否是最佳做法?或者将新读数推送到与特定温度记录器对应的文档中的数组?
对于第二种情况,绘制图表的Meteor.js客户端在使用cursor.observeChanges
时会收到整个文档吗?如果是这样,这会不会是一个巨大的文档,其中包含客户端每秒下载数月的温度数据?
最佳答案
这种数据叫时间序列,MongoDB已经做到了a number webinars和博客 posts处理这些数据的最佳方式。
基本思想是在文档每次测量和一个文档中的所有测量之间进行交叉。您创建一个文档,其中包含一段时间(比如一天)的所有测量值。为避免文档移动和“空洞”,您预先为文档分配了无效的测量值(例如 0、-1、-infinity)。
HTH- 罗布。
关于javascript - 创建新的 Mongodb 文档与推送到文档数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26959738/