Tengo una consulta geoespacial básica que funciona bien en MongoDB. Parece que debería ser fácil aplicar $ no para obtener el complemento ... pero no funciona para mí. ¿Es un simple error de usuario? ¿O puede MongoDB no manejar esta consulta conceptualmente? No pude encontrar ninguna limitación en el documentation.
consulta de trabajo (se encuentra correctamente las 2 ciudades dentro de 10 millas del centro):
db.customers.find({ "location" : { $within : { $center : [[-117.15,32.72],0.15] } } })
Intento de consulta del complemento (resultado deseado es el 1 ciudad que no está dentro de 10 millas):
db.customers.find({ "location" : { $not : { $within : { $center : [[-117.15,32.72],0.15] } } } })
error: {
"$err" : "missing geo field (location) in : {location: { $not: { $within: { $center: [ [ -117.15, 32.72 ], 0.15 ] } } } }",
"code" : 13042
}
para cualquier persona que quiere copiar/pegar la consulta para ver el error, aquí hay un poquito de datos de ejemplo:
db.customers.ensureIndex({ "location" : "2d" })
db.customers.save({"city":"La Mesa","state":"CA","location":[ -117.02,32.76 ]})
db.customers.save({"city":"Chula Vista","state":"CA","location":[ -117.08,32.63 ]})
db.customers.save({"city":"Mexico City","state":"Mexico","location":[-99.133244,19.4326]})
(Estoy usando MongoDB 1.8.2 en caso de que eso importe.)
eso es difícil ... También recomendaría un mensaje en el grupo de google de mongodb-user ... – PierrOz
Sí, también lo recomendaría ... es una buena pregunta .. – RameshVel
Una consulta como esta es no es posible, pero es una solicitud de mejora conocida. Para referencia futura, estos hilos en el Grupo de Google MongoDB discuten el problema. [Geo consulta utilizando $ e] [1] [Geo Consulta] [2] [1]: http://groups.google.com/group/mongodb-user/browse_thread/thread/4417b0f9f0b3de12 [2 ]: http://groups.google.com/group/mongodb-user/browse_thread/thread/65a7fd77a2ee4306 ¡Ayuda! No puedo encontrar la forma de formatear estos enlaces. – mdahlman