首页 > 解决方案 > MongoDB设计推测

问题描述

我正在挖掘与 MongoDB 相关的问题/答案,但有一件事仍然不明显。

让我们考虑以下产品集合:

{
    "manufacturer": "Man1",
    "model": "Model1"
}

假设我们有 1.000.000 种产品,我想创建一个制造商下拉列表(最多 50 个选项)。

在这种情况下,每次我都必须在那个庞大的产品集合上使用 .distinct() 函数。

这是正确的方法吗?我有点担心性能。或者我应该为制造商创建一个单独的集合并保持同步?

更新

谢谢大家的回答,我还在考虑。

如果我执行以下操作会怎样:

制造商:

{
   "name": "Man1", 
   "models": [
      {
          "name": "Model1", 
          "products": [Product1, Product2]
      }
   ],
}

和产品

{
    "manufcturer": "Man1",
    "model": "Model1"
    "manufacturer_id": Manufacturer1,
    "model_id", Model1
}

标签: mongodb

解决方案


第一的。如果您有大量记录,您永远不想在一个请求中加载所有数据以填充列表、下拉列表或其他任何内容。相反,实现类似load more选项的东西更适合。就像分页一样。

您可以设法在每个请求中获得 20,40 条记录,并对这些小数据块进行任何优化。


推荐阅读