#mongodb #recursion #insert #geospatial
#mongodb #рекурсия #вставить #геопространственный
Вопрос:
У меня есть файл GeoJSON, содержащий набор окрестностей с их соответствующей геометрией, и я хочу добавить его в свою коллекцию MongoDB. Проблема в том, что полигоны содержат слишком много точек. Это один из них (вставлен в ссылку, потому что он слишком большой):
http://hastebin.com/ukekekayad.pl
2 из 3 раз я получаю ошибку InternalError: слишком много рекурсии Как я могу предотвратить это? Я не могу уменьшить количество точек автоматическим способом, так как полигон может потерять свою правильную форму.
Есть предложения?
Комментарии:
1. Какой код выполняет рекурсию? Добавление полигона в базу данных не является естественным рекурсивным алгоритмом, поэтому я надеюсь, что вы контролируете исходный код.
2. Код слишком велик для включения в stackflow, я добавил его в эту ссылку. Я знаю, что это не естественный рекурсивный алгоритм, но ошибка все еще появляется случайным образом. Хуже всего то, что иногда вставка работает нормально. Вы можете попробовать это самостоятельно с большими точками.
Ответ №1:
MongoDB, вероятно, каким-то образом индексирует точки во время вставки, на самом деле не знает, какой предел.
Альтернативным решением является упрощение координат с помощью следующего инструмента.