从mongoDB中的两个以上的集合中读取类似的数据

时间:2016-07-19 02:52:33

标签: mongodb mongodb-query mongodb-java

我是MongoDB的新手。在我们的应用程序中,每个表的数据大小相当大,所以我决定将它们分成不同的集合,即使它是相同的类型。唯一的区别是" id"所有集合中的每个文档(一个集合中的文档属于一个类别)之间。因此,我们决定将数据插入数字集合中,每个集合将包含一定数量的文档。目前我有10个相同类型的文档数据的集合。 我的要求是 1)从单个查询中的所有集合中获取数据以显示在应用程序主页中。 2)我需要在获取之前使用排序和过滤来获取数据。

我已经浏览了stackoverflow中的一些帖子,说明使用Mongo-3.2 $ lookup 聚合来满足此要求。但我怀疑如果我使用$ lookup查找10个集合,可能会出现性能问题和过于复杂的查询。 因为我把我的同类数据分成了一些集合(每个集合都有一个类别的文档,就像我有10个类别一样,所以我需要使用10个集合。)

任何人都可以建议我的方法是否正确吗?

2 个答案:

答案 0 :(得分:0)

如果您有大量数据,如何在网页中显示所有数据?

我的理解是,您只会通过查询数据库来显示数据集的一部分。由于您没有提及您拥有的记录数量,因此提出建议并不容易。

根据模糊描述,分片是解决方案,您应该查看official doc

但是,在进行分片之前,由于您提到的是新手用户,您可能想要检查数据库'索引,数据模型以及首先对您的绩效进行基准测试。

希望这会有所帮助。

答案 1 :(得分:0)

您应该将所有10种类型的数据存储在1个集合中,而不是10个。不要让事情变得比他们需要的更困难。