Геопространственный запрос MongoDB с $ not
У меня есть базовый геопространственный запрос, хорошо работающий в MongoDB. Кажется, применить $, чтобы получить комплемент, должно быть легко, но у меня это не работает. Это простая ошибка пользователя? Или MongoDB не может обработать этот запрос концептуально? Я не мог найти такое ограничение вдокументация.
Рабочий запрос (правильно находит 2 города в 10 милях от центра):
db.customers.find({ "location" : { $within : { $center : [[-117.15,32.72],0.15] } } })
Попытка дополнения запроса (желаемый результат - 1 город, который находится не в пределах 10 миль):
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
}
Для тех, кто хочет скопировать / вставить запрос, чтобы увидеть ошибку, вот небольшой пример данных:
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]})
(Я использую MongoDB 1.8.2 в случае, если это имеет значение.)