mongodb - 在mongodb中搜索更多嵌套对象或更多文档是否更快
问题描述
我正在为我的 mongodb 数据库考虑以下文档结构。第一个模型会导致更多的文档,但第二个模型会在每个“事件”数组中包含更多的“事件”对象。顺便说一下,每个“事件”数组中有数千个“事件”对象。
我需要能够按博彩公司、体育、市场、交易所、联赛和事件过滤“事件”数组中的对象。最常见的查询是没有过滤器。哪种模型最好,拥有更多文档会显着减慢获取事件对象的请求吗?
{
bookmaker: 'Bet365',
sport: 'Football',
market: 'Match Result'
data: [
{
exchange: 'Smarkets',
data: [
{
league: 'English Premier League',
events: [...],
last_update: '84792394832'
},
{
league: 'English Championship',
events: [...],
last_update: '84792394832'
},
...
]
}
... more exchanges
]
}
然后这个...
{
bookmaker: 'Bet365',
data: [
{
sport: 'Tennis',
events: [...],
last_update: '84792394832'
},
{
league: 'Football',
events: [...],
last_update: '84792394832'
},
...
]
}
对于第二种模型,市场、交易所和联赛位于 events 数组中的每个事件对象中。我假设现在尝试按市场、交易所或联赛进行过滤会慢很多,因为查询必须检查“事件”数组中的每个对象,而不仅仅是能够几乎立即注销整个文档. 相比之下,第二个在“事件”数组中获取“事件”对象是否更快?
编辑: 我需要存储大约 100,000 个像下面这样的“事件”对象,如果我使用上面的第一个文档模型,那么我不需要存储市场、交易所或联盟。对于上面的第二个模型,我将有大约 30 个文档,每个文档在“事件”属性中嵌入 3000-4000 个这些“事件”对象,而对于第一个模型,我将有大约 500 个文档,每个文档包含大约 200 个嵌入文档他们。我认为第一个模型对我来说会更好,但我想知道当我想将每个“事件”对象从数据库中拉出时,这个模型是否会慢很多。这是“事件”对象...
{
event_id: 'fl23rtkb5kh1hren213h',
date: '2308323922',
event: 'Man United vs Liverpool',
bet: 'Man United',
market: 'Match Result',
league: 'English Premier League',
bookmaker: 'Bet365',
odds1: 3.3,
exchange: 'Smarkets',
odds2: 3.4,
availability: 132.11,
rating: 98.11,
snr_rating: 62.15
}
解决方案
推荐阅读
- rest - 构建 REST api 同步应用程序时需要考虑哪些架构模式?
- php - “通过电子邮件发送此页面”链接到 WordPress/WooCommerce 存档页面不会获取页面 URL
- python - 使用 Python 从 CSV 文件中提取列数据
- javascript - Javascript 显示/隐藏鼠标活动的视频控件
- pine-script - 如何在 PINE 脚本中保持当前状态?
- javascript - ES6:使用 .next() 属性创建类(iterationg 属性字段值)
- jenkins - 从 Jenkins 服务器使用 Jmeter 运行 Kafka 消息传递的负载测试时出现错误
- javascript - 为什么我的转换:转换不能反向工作?
- c++ - 尝试使用模板模板参数来理解部分模板专业化
- algorithm - 等于或超过给定数字的所有组合