mongodb - 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
}
解决方案
第一的。如果您有大量记录,您永远不想在一个请求中加载所有数据以填充列表、下拉列表或其他任何内容。相反,实现类似load more
选项的东西更适合。就像分页一样。
您可以设法在每个请求中获得 20,40 条记录,并对这些小数据块进行任何优化。
推荐阅读
- c - 根据大写和小写字母对字符串进行冒泡排序
- java - 如何为具有spring存储库代码的@Component类编写集成测试?
- python - 向 Watson Assistant 进行身份验证后如何从 Flask 返回令牌?
- angular - Angular/Typescript - 事件,使用构造函数更改编号
- php - 如何打印“就是这样!” 在 PHP 中?双引号和单引号?
- python - Python:根据单独字典中设置的类型将键与字典中每个键对值的值进行比较
- http - 将https与flutter http.dart包一起使用时出错
- json - 邮递员到 HTML
- video - 使用 ffmpeg 基于图像创建垂直视频滚动
- opencv - 使用 OpenCV 和 Tesseract 的摩洛哥车牌识别 (LPR)