哪种风格在Mongodb中最受欢迎?

时间:2016-03-02 18:24:54

标签: mongodb

在mongodb中,哪种风格更好? 1)或2)?尽管在db.record.find(“line”:“east”)上获得完整记录,我是否可以从1)中仅检索行名?

1

{
  "line": "east",
  "station":[
    { "name": "ABC", "_id": "1", },
    { "name": "DEF", "_id": "2" }
  ]
}

2

{ "line": "east", "l_id":"1"},
{"station":"ABC", "_id":"1", "l_id":"1"},
{"station":"ABC", "_id":"2", "l_id":"1"}

注意:linestation有一对多关系。

1 个答案:

答案 0 :(得分:0)

如果你最常见的是逐行接站,并且经常需要一条线路的所有站点alt 1是最好的。如果您通常检索单站或站的子集2是最好的。 Alt 2可以导致更多的查询,因为mongo实际上没有任何关系,alt 1可能导致更大的读取,并且由于更大的对象而使得工作集更难以保持在RAM中。如果您在多行中更改工作站中的值,则Alt 1也有一个小缺点 - 那么您必须在包含它的每个行文档中更新其实例。

要获取部分对象,即不是alt 1中的所有工作站,您可以进行投影以过滤掉您不想要的内容。它仍然意味着首先将整个对象读入内存,这样你就不会从中获得很多性能。