MongoDB 无法在特定跳过访问以上文档

MongoDB cant access document above at specific skip

我在 AWS EC2 t2.micro 上的云中有一个 MongoDB 实例(30GB 存储空间,1GB 内存)运行ning 在 Docker 和那个数据库中我有一个存储 411,000 个文档的集合,这需要 ~700MB 磁盘 space.

在我的本地计算机上,如果我 运行 在 mongo shell 中这样做:

db.my_collection.find().skip(200000).limit(1)

然后我得到正确的结果,但是如果我 运行 这个

db.my_collection.find().skip(220000).limit(1)

然后 MongoDB 关闭。为什么?我应该怎么做才能访问这些数据?

您的系统似乎没有足够的 RAM 来满足 mongodb 需求。当 Linux 系统内存严重不足时,内核会开始终止进程​​以避免系统崩溃。

我相信,这也是您的情况。 Mongodb 甚至没有机会写日志。我建议增加 RAM,或者如果不可行,请添加更多交换 space。这将防止系统崩溃,但 mongodb 将继续工作,但速度非常非常慢。

请访问 Linux 上的这些优秀资源及其行为。

https://unix.stackexchange.com/questions/136291/will-linux-start-killing-my-processes-without-asking-me-if-memory-gets-short

https://serverfault.com/questions/480266/how-to-know-if-the-server-runs-out-of-ram-before-crashing-down