Содержание

, ,

MongoDb

Документация

Видео

Установка

$ apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
$ echo "deb http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.2 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
$ apt-get update
$ apt-get install -y mongodb-org

Настройка

Добавление внешнего IP адреса

Version 2.x

nano /etc/mongod.conf

port: 27017
bind_ip: 127.0.0.1,89.2.1.1

Подробнее: https://docs.mongodb.org/v2.2/reference/configuration-options/

Version 3.x

nano /etc/mongod.conf

# network interfaces
net:
  port: 27017
  bindIp: 127.0.0.1,89.2.1.1

Подробнее: https://docs.mongodb.org/v3.2/reference/configuration-options/

PHP

Создание пользователя

$ mongo
MongoDB shell version: 2.4.9
connecting to: test
> use admin;
switched to db admin

2.4

Roles

http://docs.mongodb.org/manual/reference/built-in-roles/

2.6.4

3.0.0

3.2.3

Изменение пользователя

Привелегии

Backup / Restore

Backup

Если не задан пароль у юзера admin в БД admin

mongodump --out /tmp/mongodump

Если задан пароль у юзера

mongodump --username admin --password password --out /tmp/mongodump

Если дамп выполняется с учетом пользовательских настроек

mongodump --host localhost --port 3017 --username admin --password pass --out /tmp/mongodump

Restore

mongorestore --db some_other_db -c some_or_other_collection tmp/mongodump/some_collection.bson
mongorestore --db some_other_db --username user --password pass ./

INSERT

UPDATE ($where, $params)

geoNear

MongoDB: geoNear не возвращаясь расстояние

Мне нужно, чтобы изменить существующий геопространственных запросов таким образом, что она включает в себя расстояние в результаты поиска. (Оба документа и существующий запрос с использованием устаревших координатных пар.) Исходный запрос использует $near. Чтение документации MongoDB похоже, geoNear должен возвратить расстояние, как показано на нескольких примерах.

В то время как я был в состоянии изменить запрос, чтобы использовать geoNear, расстояния не включены в результаты поиска. Вот пример нового запроса:

{ 
  geoNear: 'users',
  near: [ '0', '0' ],
  maxDistance: '90',
  query: { userName: { '$regex': '^test' } }
}

Единственное, что не понятно, как Mongo связей в месте, указанному в запросе, на расположение документа. В моем случае пользователи документе есть поле с именем lastKnownPosition. Как работает Mongo даже знаю, на запрос к этому полю?

Вот пример результатов поиска:

{ 
    "__v" : 0 , 
    "_id" : { "$oid" : "5413824f8b4d6f7505120a53"} , 
    "lastKnownPosition" : { "lon" : 0 , "lat" : 0} ", 
    "userName" : "test123"
}

Клиенты

Статьи