所以我计划使用mongodb(我是新来的)来跟踪我的色情网站的印象和流量。我有时在横幅上有超过100万的印象。我还有各种各样的横幅。。。因此,可能每天我都会对横幅有10亿次印象,我想把它存储在数据库中,这样我就可以看到哪条横幅在特定的时间范围内转换得最好,哪条旗帜在特定的国家转换得最好等等。
例如,集合中的对象如下所示:
{ "_id" : ObjectId("5124d03d512c175714000000"), "bid" : ObjectId("5124a9ec512c178710000000"), "city" : "Rome", "country" : "Italy", "client_id" : "127.0.0.1", "referer" : "youporn.com", "user_agent" : "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:12.0) Gecko/20100101 Firefox/12.0", "visit_datetime" : "2013-Feb-20 02:31:41", "visit_year" : "2013", "visit_month" : "Feb", "visit_day" : "20" }
所以我需要信息和建议,这是储存印象的好方法吗?还是我的组织应该完全不同(也许每个国家都有单独的收藏,但在某个时候这又会有问题)?
我非常感谢所有的想法、建议、问题和意见。
AS@Joachim Isaksson在上面评论了你的问题,你生成的数据量是巨大的。基于此,您必须决定是否有能力处理这笔金额。
如果你真的有,我想你会需要一些地图&减少之后从数据中得到一些东西的方法(使用当前的数据设计)。
我在这里看到的主要问题是,你应该有一些你想回答的具体问题。如果你这样做了,你可以相应地为这个集合建模。尤其是在你需要数据的维度上。否则,你很可能只是收集了一堆最终从未使用过的数据,或者更糟的是,收集了错误的数据。
如果你只对国家和日期感兴趣,为什么不在横幅/日期/国家组合中的条目上增加一个计数器呢?因此,与其每次都保存整个日期和国家,不如创建一个条目,如:
{ "bannerId" : "b1", "country" : "IT", "date" : "20130220", "count" : 0 }
然后只增加对象的计数部分。这将为您节省大量数据。如果您需要更详细的信息(例如每小时的时间段),您也可以每小时保存一个条目(日期+小时)。
否则,为什么不看看现有的数据仓库应用程序,它也提供了解释数据的所有工具?也可以选择。