2
respostas

Erro ao executar a Instrução no MONGO para mostrar a distância entre os Alunos

Pessoal, eu gostaria de contar com a ajuda de vocês. Ao executar o comando no Mongo para retorna a distância entre os alunos mais proximos, eu recebi um retorno de erro:

Segue o comando executado com o retorno do erro:

db.alunos.aggregate([ ... { ... $geoNear : { ... "near" : { ... "coordinates" : [-23.5640265, -46.6527128], ... "type" : "Point" ... }, ... "distanceField" : "distancia.calculada", ... "spherical" : true ... } ... } ... ]) 2020-04-11T17:46:32.864-0300 E QUERY [js] uncaught exception: Error: command failed: { "ok" : 0, "errmsg" : "$geoNear requires a 2d or 2dsphere index, but none were found", "code" : 27, "codeName" : "IndexNotFound" } : aggregate failed : getErrorWithCode@src/mongo/shell/utils.js:25:13 doassert@src/mongo/shell/assert.js:18:14 _assertCommandWorked@src/mongo/shell/assert.js:583:17 assert.commandWorked@src/mongo/shell/assert.js:673:16 DB.prototype.runAggregate@src/mongo/shell/db.js:266:5 DBCollection.prototype.aggregate@src/mongo/shell/collection.js:1012:12

OBS: Estou utilizando o MongoDB versão 4.2.5 no MAC OS.

Espero contar com a ajuda de vocês.

2 respostas

Olá Romilson, tudo bem?

Para usar o $geoNear é necessário ter um índice 2dsphere, então antes de executar esta query, você criou o Índice localização?

db.alunos.createIndex({
    localizacao : "2dsphere"
})

Olá Danielle, tudo bem?

O código que você me mandou eu executei ele antes. Me parece que tem algo relacionado ao Mongo Atlas. Eu preciso ver isso com mais detalhes. Ainda estou pesquisando isso.

Vou tentar simular no meu servisor CentOS 7.

Obrigado pela ajuda até o momento.