在Mongodb文档中存储点击次数和展示次数(横幅广告)?

时间:2014-04-14 03:26:03

标签: mongodb mongodb-php

我是Mongodb的新手,我有SQL背景。

因此,我的应用记录了横幅的点击次数和展示次数,我决定将所有这些内容存储到每个横幅的单个文档中,如下所示:

{
  "_id":ObjectId('534b45b9b6d966a8010002323'),
  "active": true,
  "banner_end": ISODate("2015-06-05T23:59:59.0Z"),
  "banner_name": "Cool banner",
  "banner_position": "bottom",
  "banner_url": "http:\/\/www.google.com",
  "banner_image":"http:\/\/www.google.com/pic.jpg",
  "click_details": [
    {
      "date": ISODate("2014-04-14T02:29:22.961Z"),
      "ip": "::1"
    }
  ],
  "clicks": NumberInt(1),
  "impression_details": [
    {
      "date": ISODate("2014-04-14T02:28:41.353Z"),
      "ip": "::1"
    },
    {
      "date": ISODate("2014-04-14T02:28:53.52Z"),
      "ip": "::1"
    }
  ],
  "impressions": NumberInt(2)
}

显然,随着时间的推移,click_details和impression_details的数组将会增加(尤其是展示次数)。我想知道我是否正确地这样做了?或者我应该将click_details和impression_detail存储到单独的集合中吗?

稍后我将需要click_detail和impression_detail来绘制图表。

非常感谢

1 个答案:

答案 0 :(得分:0)

此方法没有任何问题,而且子文档在Mongo中的限制为16 MB,可以为您存储许多记录。

您还可以突出显示您在网站上获得的用户数量以及横幅的预期展示次数/点击次数。

P.S。您可以通过使用JSON对列进行别名来节省大量空间,例如: banner_name可以写成bn_nm等等。