MongoDB数据组织以获取性能

时间:2019-05-16 07:16:00

标签: node.js mongodb geojson

我正在构建一个数据库,其中将包含一些要发送到应用程序客户端的菜单项。这些菜单项分为两个主要类别:

  • 本地化(GeoJSON Multipolygon)
  • 常见(意味着不依赖于用户获取的位置)

为了获得更好的生产性能,我应该如何组织数据?

是否最好分别创建三个集合:lowest-common-denom-itemslocalized-itemsitems

lowest-common-denom-items集合中,我将存储所有无论位置在哪里都应始终返回的所有项目ID。

并且localized-items集合仅包含具有在多边形内时应返回的项ID的多边形(与lowest-common-denom-items一起使用)

最后,items集合将包含所有项目,而与位置无关,即“原始”实体。存储所有属性的位置。像区域设置键,图标URL等。

所以提取将像这样工作:

  1. 用户使用LAT,LNG发送获取请求
  2. API获取所有LCD项目ID
  3. 然后,它对本地化项目集合执行地理查询,以获取与用户位置匹配的那些项目
  4. 组合两个ID数组
  5. 对商品集合执行最终查询,仅获取感兴趣的商品

还是将所有内容存储在单个集合中,用标记标记已本地化的内容,然后执行一次查询即可获取所有内容的更好方法?这里的重点是单个集合可能会变大。很大。将来是否会对扩展性和整体性能造成问题?

0 个答案:

没有答案