我将使用node-cron编写一项服务,该服务每天凌晨4点查询我的应用程序的所有用户及其活动(例如他们购买了什么,他们带来了多少新用户等)。这将导致计算每个人的得分并相应地发送礼物。由于我有近500,000个用户记录,我担心只用一个查询(如User.find({})
)来提取所有数据就会变得很麻烦。
我能想到的一个解决方案是使用mongoose的skip
和limit
功能以及nodeJS中的setTimeout
查询用户信息,并一次获取1000个用户,然后在100毫秒后,下一个1000用户,依此类推,直到我计算所有用户的分数和礼物。
这是正确的方式还是如果不是这样,有人能建议我采用更好的方法吗?