如何每秒增加数据库中的值

时间:2016-08-22 16:50:07

标签: javascript mongodb meteor

我在mongodb数据库中有以下对象:

  1. 最大人口。
  2. 人口增长(每秒应增加多少人口)。
  3. 现有人口。
  4. 用户将通过不同的方法改变人口,但是我想在服务器上有一些代码,这些代码每秒通过对象的人口增量递增对象的当前人口,直到最大人口数量为止。达到。

    关于如何实现这一点的任何想法?我想我需要一个带有$ inc查询的流星间隔,但我不知道我应该在哪个文件中放置这个以及如何在查询中访问对象的最大填充和增量值。

1 个答案:

答案 0 :(得分:1)

除了性能问题(如果要更新的对象数量很少),您可以使用Meteor.setInterval

执行此操作
import { Meteor } from 'meteor/meteor'
Meteor.setInterval(()=>{
  MyCollection.find({ $where: { "this.population < this.maximumPopulation" }}).forEach(doc => {
    MyCollection.update(doc._id,{ $inc: { population: doc.populationIncrement }});
  }
},1000);