我在mongodb数据库中有以下对象:
用户将通过不同的方法改变人口,但是我想在服务器上有一些代码,这些代码每秒通过对象的人口增量递增对象的当前人口,直到最大人口数量为止。达到。
关于如何实现这一点的任何想法?我想我需要一个带有$ inc查询的流星间隔,但我不知道我应该在哪个文件中放置这个以及如何在查询中访问对象的最大填充和增量值。
答案 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);