Content #
有电影上映信息的文档形式如下:
{
title: "Dunkirk",
...
release_USA: "2017/07/23",
release_UK: "2017/08/01",
release_France: "2017/08/01",
release_Festival_San_Jose:
"2017/07/22"
}
需要针对每个地区及时间的索引,这会导致索引的数量非常大。这时,如果文档本身的数量也很大的话,维护的成本就会很高。MongoDB中用哪种模式可以很好地解决这个问题?
使用列转行模式,将多个地区及时间放入一个数组中:
{
title: "Dunkirk",
...
releases: [
{country: "USA", date: "2017/07/23"},
{country: "UK", date: "2017/08/01"},
...
]
}
再创建如下索引:
db.movies.createIndex({“releases.country”:1, “releases.date”:1})