订购mongoDB集合的最有效方法是什么?

时间:2018-05-21 12:44:26

标签: mongodb performance

我使用mongo db来存储Web服务器流量数据。 在每个页面上访问我想存储多种数据类型,例如:

  • HTTP请求信息
  • 客户分析信息

这些数据类型是从不同域的不同端点接收的,有时不是全部。

在每个传入的数据上,我想存储原始数据,以便最终我可以查询特定用户/域上的不同数据类型。

我目前的数据库结构是:

集合:

  • data_type1
  • data_type2 ...(每个data_type的更多集合)
  • 域(集中所有涉及data_types的域)
  • 用户(集中所有引用相关data_types的用户)

文件:

data_type1:{_ id:ABCD,数据:raw_data(包括用户和域名)}

data_type2:{_ id:XYZ,数据:raw_data(包括用户和域名)}

域:{domain:xxx.xx,data_type1:[ABCD,(其他相关)],data_type2:[XYZ,(other_related)]}

用户:{user:qwerty,data_type1:[(user data_type1 related docs _id)],data_type2:[(user data_type2 related docs _id)]}

我尝试了不同的方法,我担心的是,对于每个用户或域,引用数组的data_types可以无限增长,尤其是在处理数百万个请求时。

此订单是否有效?你能提出更好的结构吗? 谢谢!

1 个答案:

答案 0 :(得分:0)