我是MongoDB的新手,并且一直在使用Node.js来玩MongoDB。我正在开发一个示例项目,以了解哪个是像github这样的问题跟踪器。
我不清楚在设计存储数据的文档时使用的是什么方法。
选项1
来自关系模型世界,我发现创建像
这样的文档非常自然等等。
选项2
在互联网上阅读了几篇文章之后,我发现人们在这一行上使用了一些东西
Project {
Users ['yasser', 'neel', 'ian'],
Issues [
{'how do I turn this on', '22/12/2014'...'}
]
考虑到以下因素,哪种方法更好 - 许多项目和每个项目都会有很多问题,标签,过滤器等 - 查询时间。例如,如果我需要对问题进行通用搜索。我是否需要扫描所有项目下的问题,因为与以前不同,我没有单独的问题表。
请帮我理解这一点。
答案 0 :(得分:0)
这是一个有问题但最好的起点是:
在不知道您想要获取的大小/比例的情况下,您将运行的所有查询列表,可用硬件和期望性能级别都很难为您提供更多信息。
但首先要制作一个你将要运行的查询列表,然后创建允许你有效运行这些查询的数据结构(参见上面的链接)似乎很聪明。
此外,mongo喜欢存储和访问内存中的数据,因此强烈建议有足够的内存来存储常见查询的数据。