我在 Mongo 实例中存储了大约 700000 个文档。它在 2GB VPS 上运行,因此无法预期最终速度。我使用 NodeJS 和 Mongoose 来完成这项工作。
文档格式如下:
- 一级钥匙
- 一级钥匙
- 2级钥匙A
- 3级钥匙A
- 2级键B
- 3级钥匙1
- 4级钥匙A
- 4级钥匙B
- 4级键C
- ...
- 3级钥匙2
- 3级键3
- ...
- 3级钥匙1
- 2级钥匙A
avgObjSize 是 3191,所以它们不是最大的也不是最小的.. 基本上是短文本列表。
所以我需要做的是将某些值与所有 3 级键中的 4 级键 C 中找到的所有值进行匹配。棘手的部分是只有在第 4 级键 Cs 中找到 XX% 的匹配值时才会返回文档。
我尝试过 MapReduce,以便所有事情都发生在 map 函数中,它只发出预处理的对象,我尝试返回所有文档和后处理,我尝试使用 map 函数仅输出 4 级键 Cs,我已经尝试使用 Mongo 自己的函数,如 $all 等。
问题是一切都非常缓慢。我的意思是每秒不到 500 个文档。该集合只会增长,所以我的问题是我只是错过了如何正确使用 Mongo 的东西,还是像这样的任务这么慢?我阅读了以前的问题,Mongo 中的 MR 存在一些问题,速度很慢,但这并不慢,这是在爬行。