我有一个使用NodeJS的项目,我有不同的实体,例如人和地方。
我需要能够按位置一起找到两种类型的实体,所以我想要做的就是在一个名为 type 的字段上有一个索引,例如,这将是 person 或 place 并使用地理空间索引,这听起来是一个很好的方法吗?还是有更好的方法?
我可能也需要很多连接,所以我应该使用MySQL和MongoDB一起使用MongoDB来提供基于位置的查询吗?
由于
答案 0 :(得分:0)
这个问题不适合stackoverflow,但这里有一些基本要点:
PostgreSQL支持连接和地理空间。我首先要选择个人缺少保证不同数据存储的其他细节。
完全有效的选项是将人员和地点分开并根据需要查询多个集合。但是,如果您需要对结果进行排序,那么最好将它们放在同一个集合中。
您还可以将人员和地点保存在单独的mongodb集合中,但有mapreduce作业将它们转换为位置集合以供搜索。
通常,有很多方法可以做到这一点,最好的方法在很大程度上取决于您的应用程序的具体方面。读取与写入,数据稳定性,数据大小,查询负载等等。
我广泛的建议是从最合乎逻辑,最容易理解的,直截了当的数据组织(单独的集合)开始,当你理解你所遇到的特定痛苦以及如何做一些更复杂或不寻常的事情时会偏离它是一个整体胜利。