在mongo中增加每周总数的最有效方法是什么?

时间:2011-09-28 11:34:50

标签: mongodb increment

在我每周总点数为每个用户整数数组的情况下,我正在阅读“为MongoDB开发人员提供的50个技巧和窍门”中的#7提示,为了在Mongo中获得最佳性能,我应该预先填充数组。因此,对于每个用户,我应该提前20周插入。 e.g。

Profile:{name:bob, totals:[{week:1,pts:0}, {week:2,pts:0}, {week:2,pts:0}, {week:2,pts:0}...etc..]}

如果是这种情况,那么更新积分字段的最佳方法是什么?如果本周的条目存在,我可以执行$ inc命令,但是我应该首先执行addToSet命令以确保本周的条目存在然后执行$ inc命令吗?这似乎效率低下...... $ inc命令会与某种类型的upsert相结合吗?

本书的示例表明,不是在配置文件中嵌入总计,我可以说为每个用户创建一个年度总计文档,并在该文档中包含一系列每周总计数,预先填充52周的价值。然后,我可以运行一个批处理作业,为每个用户创建一个新的年度总计文档,如果他们在上周。

最好将我的总计存储在单独的集合中,而不是将其嵌入到我的用例的配置文件中吗?

0 个答案:

没有答案