在Mongodb文档中存储点击和印象(用于横幅)?

在Mongodb文档中存储点击和印象(用于横幅)?,mongodb,mongodb-php,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

我是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)
}
显然,随着时间的推移,点击细节和印象细节的数组会增加,尤其是印象。我想知道我这样做是否正确?或者我应该将点击细节和印象细节存储到单独的集合中吗

我以后需要单击“详细信息”和“印象详细信息”来绘制图表


非常感谢

这种方法没有错,而且子文档在Mongo中的限制为16 MB,这将为您存储许多记录

您还可以突出显示您在站点上获得的用户数以及横幅的预期印象/点击数

另外,您可以通过在JSON中为列添加别名来节省大量空间,例如,banner_name可以写成bn_nm等等