Предположим, у меня есть 5 000 полигонов в MongoDB, и я хочу запросить их с 25 разбросанными точками (то есть не сильно сгруппированными относительно полигонов). Есть ли способ эффективно запросить базу данных?
Насколько я понимаю, вы можете сгруппировать точки в один элемент геоджона и выполнить пересечение. Но это плохая идея, так как ограничивающий прямоугольник вокруг множества точек будет огромным, и, таким образом, вы не получите никакой выгоды от какого-либо существующего индекса на многоугольниках.
В качестве альтернативы вы могли бы сделать $ или запрос (я проверю себя, чтобы увидеть, возможно ли это), но, вероятно, это будет рассматривать каждый бит изолированно, что кажется немного неэффективным (хотя и намного лучше, чем предыдущий вариант).
В идеале я бы хотел что-то вроде postgis (псевдокод):
select * from polygon_table
where geometry in ($1,$2,$3...)
насколько я знаю, это будет работать так же хорошо, как логически возможно (вроде).