在 MongoDB 中存储 Analytics 数据有哪些好方法?
使用 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 }
这是非常相关的。 pageviews 和 timeOnPage 可以集中在一起,
> db.analytics.insert({page: 'product', id: 123, date: new Date('Sept 8, 2010'),
data: { pageviews: 222, timeOnPage: 5432 } })
但如果使用 Mongoid(Rails 对象关系映射器),那么拥有额外的模型会更加复杂。
What are some good ways to store Analytics data using MongoDB for future analysis? I am thinking of doing something like:
> 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 }
which is quite relational. pageviews and timeOnPage can be lumped into
> db.analytics.insert({page: 'product', id: 123, date: new Date('Sept 8, 2010'),
data: { pageviews: 222, timeOnPage: 5432 } })
although if using Mongoid (a Rails Object Relation Mapper), then there is more complication for having an additional model.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可能想看看在计数器上使用 upserts 和 $inc 运算符。如果综合浏览量增加,您可以使用类似的内容(选择器、运算符、upsert 设置为 true)。
如果该记录不存在文档,它将创建一个文档,如果存在,它将增加综合浏览量。
这实际上完全取决于数据的形成方式。
这篇博文解释了更多信息。
You may want to look at using upserts and the $inc operator on counters. If pageviews increments you can use something like this (selector, operator, upsert set to true)
If no document exists for this record it will create one, if one exists it will increment the pageviews.
It really all depends on how your data is shaped.
This blog post explains more.