使用MongoDB存储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 }
Run Code Online (Sandbox Code Playgroud)
这是非常关系的.网页浏览量和timeOnPage可以归结为
> db.analytics.insert({page: 'product', id: 123, date: new Date('Sept 8, 2010'),
data: { pageviews: 222, timeOnPage: 5432 } })
Run Code Online (Sandbox Code Playgroud)
虽然如果使用Mongoid(一个Rails对象关系映射器),那么有一个额外的模型更复杂.
您可能希望在计数器上使用upsert和$ inc运算符.如果网页浏览量增加,您可以使用类似这样的内容(selector,operator,upsert设置为true)
update( { page: 'product', id: 123, data: { pageviews: 222}) },
{ $inc : { pageviews: 1} },
{ upsert : true } )
Run Code Online (Sandbox Code Playgroud)
如果此记录不存在任何文档,则会创建一个文档,如果存在,则会增加浏览量.
这完全取决于数据的形成方式.
这篇博客文章解释了更多.
| 归档时间: |
|
| 查看次数: |
1359 次 |
| 最近记录: |