2013-06-27 3 views
0

Я новичок в MongoDB и хочу создать базу данных с данными о местоположении (lat-long), хранящимися в коллекции. Я планирую создавать объекты GeoJSON для хранения этих данных. Я хочу знать, могу ли я создать 2 индекса в этой коллекции, из которых один является индексом 2Dsphere, а другим индексом может быть любое другое значение, такое как IP-адреса, которые уникальны в одной коллекции? И если это возможно, как мне создать эти индексы?Индексирование коллекции mongodb с индексами 2dsphere и индексами IP-адресов

+0

Я создал коллекцию и хочу индексировать его, но не знает, как это сделать. db.collection.ensureIndex ( ....) позволит мне создать индекс для нескольких полей, но я не знаю, как создать индекс с индексом 2dsphere, а также индекс ipaddress. – koustubhC

ответ

0

Это должно работать:

db.position.ensureIndex({"geoField.coordinates":"2dsphere","ipaddress":1}) 

Посмотри на this article

Я надеюсь, что это помогает

+0

Спасибо Антонио В этом случае объект документа будет выглядеть следующим образом? Поправьте меня, если я ошибаюсь {геополе: {Тип: Point координаты: [лат, длинные]} IPAddress: 122.0.0.7 подключение: Wi-Fi } – koustubhC

+0

Ну, если ваши документы так: '{» geoField ": {" type ":" Point "," codes ": [lat, long]}," ipaddress ":" 122.0.0.7 "," connection ":" wi-fi "}' ... then your statement для создания индекса будет выглядеть так: 'db.collection.ensureIndex ({" geoField.coordinates ":" 2dsphere "}, {" ipaddress ": 1})' – AntonioOtero

+0

Если формат secureIndex не будет: db.position.ensureIndex ({«geoField»: «2dsphere», «ipaddress»: 1}) – Alex