从mongodb

时间:2016-09-28 07:00:49

标签: node.js mongodb mongoose

我的藏品中有2000万份文件。我遇到了慢响应问题。所以我写了一个脚本将这个集合分成多个集合。所以现在我有一个130万个文档的集合。我随机抽了一个查询以检查响应,因此对于相同的查询,我得到更大的收集的响应时间是大约19000ms&较小的集合大约是13000ms。我在节点上使用mongoose lib来连接mongodb。 我是mongodb的新手,所以请告诉我应该从哪个方面来看待这些问题。

1 个答案:

答案 0 :(得分:-1)

MongoDB无法执行JOINS,因此组合集合几乎没有收获。但是对于MongoDB和大多数其他NoSQL数据库,Its easy to use separate databases in a single instance。因此,如果您的数据集很大,您可以根据范围键等将它们分组到不同的集合中。进一步将这些集合分解为不同的数据库以获得性能。我对性能的提升持怀疑态度,但理论上应该这样做。

例如:拥有两个数据库,可在单个实例中为超过一百万个数据集提供不同的数据

db["collectionSet1"].AppCollection.find({application_status: {$in: ["pending", "approved", "rejected"]}}).sort({_id: -1})
db["collectionSet2"].OrigCollection.find({origination_status: {$in: ["originated", "approved", "rejected"]}}).sort({_id: -1})