【问题标题】:How to design tables and their hierarchy when using MongoDB使用 MongoDB 时如何设计表及其层次结构
【发布时间】:2015-11-15 22:37:23
【问题描述】:

我是 MongoDB 的新手,并且一直在使用 Node.js 使用 MongoDB。我正在开发一个示例项目来了解哪个是像 github 这样的问题跟踪器。

我不清楚在设计文档来存储数据时使用什么方法。

选项 1

来自关系模型世界,我发现创建像这样的文档非常自然

  • 项目 { id, name}
  • ProjectUserMapping {id, projectid, userid}
  • 问题 {id, projectid, name, blah, blah.. }

等等。

选项 2

在网上看了几篇文章后,我发现有人在这条线上使用了一些东西

Project {
 Users ['yasser', 'neel', 'ian'],
 Issues [
  {'how do I turn this on', '22/12/2014'...'}
 ]

哪个是更好的方法,考虑以下 - 很多项目,每个项目都会有很多问题、标签、过滤器等 - 查询时间。例如,如果我需要对问题进行通用搜索。我是否需要扫描所有项目下的问题,因为与以前不同,现在我没有单独的问题表。

请帮助我理解这一点。

【问题讨论】:

标签: mongodb


【解决方案1】:

这是一个加载的问题,但最好的起点是这里:

Mongo data structures

如果不知道您想要获得的大小/规模、您将运行的所有查询的列表、可用的硬件以及所需的性能级别,就很难为您提供更多信息。

但是,首先列出您将要运行的查询,然后创建允许您有效运行这些查询的数据结构(请参阅上面的链接),这似乎很聪明。

此外,mongo 喜欢从内存中存储和访问数据,因此始终强烈建议您拥有足够的内存来存储常见查询的数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多