Это проблемная установка, и вы не можете сделать это со стороны кода. Проблема в том, что ваше приложение убивается, потому что ему требуется оперативная память. MongoDB очень жадна с ОЗУ и будет пытаться получить то, что может. Из-за того, что вы избегаете больших наборов результатов и больших объемов данных, вы, вероятно, можете немного задержать эту проблему, но зачем вам использовать базу данных веб-масштаба в первую очередь, если это невозможно?
Используйте провайдера, который дает вам фиксированный объем оперативной памяти, поэтому MongoDB знает, сколько оперативной памяти он может выделить. Это может быть не быстро, но, по крайней мере, это не просто уничтожит сервис из ниоткуда.
Даже если у вас очень хорошие индексы, по крайней мере индексы должны вписываться в ОЗУ. Если для ОС требуется 100 МБ (что очень консервативно), у вас осталось только 400 МБ для хранилища данных 10 ГБ. Реально, вероятно, осталось только 200 МБ для фактического хранения данных в ОЗУ, и это кажется на нижнем уровне для базы данных 10 ГБ.
Даже тогда не указывайте свое программное обеспечение на излишне сильные ограничения. Виртуальная машина с 1-2 ГБ оперативной памяти не так дорого, но, что более важно, убедитесь, что оперативная память гарантирована и исправлена (нет «повышения» ОЗУ).
В чем ваш запрос, возможно, вам придется добавить некоторые индексы. Mongo вынуждает тянуть всю эту коллекцию в ОЗУ для ее поиска. – Matt
Предоставление схемы данных и типа запроса очень помогло бы. Также, как уже упоминалось, присутствуют индексы. – Jinxcat
Данные в основном содержат профиль facebook и нравятся пользователям. – graphicmist