Mam podstawowe zapytanie geoprzestrzenne działające dobrze w MongoDB. Wydaje się, że powinno być łatwo zastosować $, aby nie uzyskać uzupełnienia ... ale to nie działa dla mnie. Czy to prosty błąd użytkownika? A może MongoDB nie traktuje tego zapytania koncepcyjnie? Nie mogłem znaleźć takiego ograniczenia w documentation.
zapytania robocza (poprawnie wyszukuje 2 miastach ciągu 10 mil od centrum):
db.customers.find({ "location" : { $within : { $center : [[-117.15,32.72],0.15] } } })
nieudane zapytanie dopełniacza (pożądany wynikiem jest 1 miasto, które nie jest w odległości 10 mil):
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
}
dla każdego, kto chce skopiować/wkleić kwerendę, aby zobaczyć ten błąd, oto drobny bit danych próbki:
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]})
(Używam MongoDB 1.8.2, jeśli to ma znaczenie).
To jest trudne ... Polecam również wiadomość na grupie google mongodb-user ... – PierrOz
Tak, polecam również ... to miłe pytanie .. – RameshVel
Zapytanie takie jak to nie jest możliwe, ale jest to znane żądanie rozszerzenia. Na przyszłość te wątki w Grupie dyskusyjnej MongoDB Google omawiają problem. [geo zapytania przy użyciu $ i] [1] [geo zapytań] [2] [1] [2 http://groups.google.com/group/mongodb-user/browse_thread/thread/4417b0f9f0b3de12 ]: http://groups.google.com/group/mongodb-user/browse_thread/thread/65a7fd77a2ee4306 Pomoc! Nie mogę wymyślić, jak sformatować te linki. – mdahlman