我正在寻找一种存储和查询N x N矩阵的方法。 数据不会频繁更改。 搜索必须快速。
我必须能够查询任何城市到其他城市的距离(以及存储为航班,公共汽车,火车等的任何其他数据)。
示例: 从纽约州到波士顿:距离:215英里,数据:没有火车。
从波士顿到纽约:空。
从华盛顿特区到纽约:距离:225英里,数据:-
为了表示数据,我做了一个矩阵
我正在使用mongoDB作为数据库。
第一个选项: 我正在考虑将矩阵的任何行表示为文档。
{
city: "NY",
destinations: [
{city:"Boston", distance: "215 mi", data: "no trains"},
{city:"Washington DC", distance: "226 mi", data: ""}
]
}
缺点:有些文档在4000个目标城市附近有一个数组。
优点:集合中只有4000个文档。
第二个选项:
创建具有任何城市联系的文档:
示例:
{
from: "NY",
to: "Boston",
distance: "215 mi",
data: "no trains"
}
优点:我认为有了索引,搜索可能会更快。
缺点:从4000 x 4000组合中,该集合可能包含将近12.000.000的文档。
感谢您的帮助。