在MongoDB中存储Google Analytics数据有哪些好方法?

时间:2010-09-13 11:04:33

标签: mongodb analytics

使用MongoDB存储Google Analytics数据以供将来分析的一些好方法是什么?我在想做类似的事情:

> db.analytics.insert( { page: 'product', id: 123, date: new Date('Sept 8, 2010'),
                       pageviews: 222, timeOnPage: 5432 } )

> db.analytics.find()
{ "_id" : ObjectId("4c8e04b1f14d4366465197b8"), "page" : "product", "id" : 123, 
  "date" : "Wed Sep 08 2010 00:00:00 GMT-0700 (PDT)", "pageviews" : 222, 
  "timeOnPage" : 5432 }

这是非常关系的。网页浏览量和timeOnPage可以集中到

> db.analytics.insert({page: 'product', id: 123, date: new Date('Sept 8, 2010'),
                       data: { pageviews: 222, timeOnPage: 5432 } })

虽然如果使用Mongoid(一个Rails对象关系映射器),那么拥有一个额外的模型会更复杂。

1 个答案:

答案 0 :(得分:5)

您可能希望在计数器上使用upserts和$ inc运算符。如果网页浏览量增加,您可以使用类似这样的内容(selector,operator,upsert set to true)

update( { page: 'product', id: 123, data: { pageviews: 222}) }, 
        { $inc : {  pageviews: 1} }, 
        { upsert : true } )

如果此记录不存在任何文档,则会创建一个文档,如果存在,则会增加浏览量。

这完全取决于数据的形成方式。

blog post解释了更多。