Pesquisar todos os polígonos que contenham uma série de pontos no mongodb

Minha pergunta é semelhante a estaDado um conjunto de polígonos e uma série de pontos, encontre quais polígonos são os pontos localizados

Eu tenho um banco de dados mongodb com duas coleções,regiões que armazena um conjunto de polígonos (províncias italianas), epontos que armazena um conjunto de amostras, cada uma com um par de coordenadas. Eu estou usando o formato mongodb 2.4 e GeoJSON para armazenar dados, ambas as coleções têm um índice 2dsphere.

Eu sou capaz de encontrar se um determinado ponto está dentro de um determinado polígono.

Agora eu gostaria de encontrar todos os polígonos que contém uma lista de espécimes, para desenhar um mapa como estehttp://www.peerates.org/province.png

Existe uma solução melhor do que percorrer todos os pontos e verificar se ele está dentro de cada polígono, aproveitando os geo-índices do mongodb?

edit: encontrei uma solução parcial usando uma função armazenada na coleção system.js

 function(){
    var found = [];
    var notfound = [];
    db.regions.find().forEach(
        function(region){
            var regionId = region._id;
            var query = {
                    'loc':{
                        $geoWithin: {
                            $geometry: region.loc
                        }
                    }
                };
            var len = db.points.find(query).size();
            if(len>0){
                found.push(regionId);
            }else{
                notfound.push(regionId);
            }
        }
    );
    return {
        "found":found,
        "notfound":notfound
    };
}

infelizmente eu não posso usá-lo em mongohq.com parece que eval () não é mais suportado.

@RickyA obrigado, vou considerar mudar para um postgis

questionAnswers(1)

yourAnswerToTheQuestion