嵌套对象占用MongoDB中的空间比字符串键多吗?

时间:2015-06-04 21:53:49

标签: mongodb

我希望将按日分组的预聚合报告数据存储在文档中。我有两个选择:

选项1:平面架构

对于timeOnSite内的每一天,请使用yymmdd键。所有这些密钥都是timeOnSite的直接子项,因此每个密钥路径都是timeOnSite.yymmdd

{
  "timeOnSite": {
    "150421": 25,
    "150418": 42
  }
}

选项2:嵌套模式

现在,嵌套的关键路径如下所示:timeOnSite.yy.mm.dd

{
  "timeOnSite": {
    "15": {
      "04": {
        "21": 25,
        "18": 42
      }
    }
  }
}

我对数据的存储方式几乎没有偏好。我关心:

  1. 快速查询
  2. 尽可能使用最小的存储空间
  3. 任何人都知道上述任何一种方法是否更好?非常感谢。

    更新,以解决“我将运行哪种查询”这一问题,它可能是以下任何一种:

    • 获取过去30天内网站上的总时间:在汇总管道中使用$project,以$add缩短网站上的总时间。在此步骤之后,将应用另一个$match进行过滤。
    • 检测客户是否在过去30天内在网站上花费了任何时间,检测到上述任何一个密钥中是否存在值。这将是$or个查询的大列表,每个查询都会查找是否存在不同的密钥。

0 个答案:

没有答案