У меня есть коллекция как так:MongoDB геопространственных запросов для multyindex данных
db.records.save({ name : "John Smith", addresses : [ { context : "home" , loc : [ 55.5, 42.3 ] } , { context : "work", loc : [ -74 , 44.74 ] } ] })
И я создал индекс, как это:
db.records.createIndex({ "addresses.loc": "2d" })
Теперь, когда я пытаюсь сделать запрос примерно:
db.Company.findOne({ "stores.loc" : { $near :[55.5, 42.3]}})
То, что я ожидаю получить, - это john smite с массивом адресов с только соответствующий адрес, что я получаю, john smite со всеми адресами, поэтому я не знаю.
Как это решить?
Есть ли какая-либо конкретная причина наличия всего адреса Джона в одном документе? – abhinsit
Поскольку все эти местоположения находятся внутри одного документа, он находит документ рядом с '[55.5, 42.3]' и возвращает весь документ. Возможно, подумайте о «сглаживании» схемы (т. Е. Используйте один документ для каждого адреса). – Adam