Ho una query geospaziale di base che funziona bene in MongoDB. Sembra che dovrebbe essere facile applicare $ per non ottenere il complemento ... ma non funziona per me. È un errore utente semplice? Oppure MongoDB non può gestire concettualmente questa query? Non sono riuscito a trovare alcuna limitazione di questo tipo nel documentation.
interrogazione di lavoro (trova correttamente le 2 città entro 10 miglia del centro):
db.customers.find({ "location" : { $within : { $center : [[-117.15,32.72],0.15] } } })
Tentativo di query complemento (risultato desiderato è il 1 città che non si trova a 10 miglia):
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
}
per chiunque che vuole copiare/incollare la query per vedere l'errore, ecco un po 'di dati di esempio:
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]})
(Sto usando MongoDB 1.8.2 nel caso che importi)
questo è un problema ... Consiglio anche un messaggio sul gruppo google mongodb-user ... – PierrOz
Sì, lo raccomanderei anche .. è una bella domanda .. – RameshVel
Una query come questa è non è possibile, ma è una richiesta di miglioramento nota. Per riferimento futuro, questi thread sul gruppo Google MongoDB trattano il problema. [Geo Query utilizzando $ e] [1] [Geo Query] [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 Aiuto! Non riesco a capire come formattare questi collegamenti. – mdahlman