MongoDb

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

http://mongoid.org/en/mongoid/docs/querying.html (ruby)

http://jsman.ru/mongo-book/

PHP

sudo pecl install mongo

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

# mongo

MongoDB shell version: 2.4.9
connecting to: test

# use admin;

switched to db admin

2.4

> use admin;

> db.removeUser('admin');

> db.addUser({user:'admin', pwd:'pass', roles: ['dbAdminAnyDatabase']});

> db.auth('admin','pass');

Roles

read

readWrite

dbAdmin

dbOwner

userAdmin

clusterAdmin

clusterManager

clusterMonitor

hostManager

readAnyDatabase

readWriteAnyDatabase

userAdminAnyDatabase

dbAdminAnyDatabase

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

2.6.4

> use some_database

> db.getSiblingDB("admin").runCommand({authSchemaUpgrade: 1 });

> db.dropUser('admin');

> db.createUser({ user:"user", pwd:"password", roles:["read","readWrite","dbAdmin"]});

> db.auth('admin','pass');

3.0.0

> use admin;

> db.dropUser('admin')

3.2.3

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

db.changeUserPassword("reporting", "SOh3TbYhxuLiW8ypJPxmt1oOfL")

Привелегии

db.runCommand(
{
usersInfo:"admin",
showPrivileges:true
}
);

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 ./

SEARCH

db.getCollection('rooms').find({roomid: 'user-53'})

db.users.find({"name": /.*Супр.*/})

INSERT

UPDATE ($where, $params)

db.unicorns.update({name: 'Roooooodles'}, {weight: 590})

db.unicorns.update({weight: 590}, {$set: {name: 'Roooooodles', dob: new Date(1979, 7, 18, 18, 44), loves: ['apple'], gender: 'm', vampires: 99}})

db.getCollection('rooms').update({},{messageCount: 0})

db.getCollection('rooms').update({},{$set: {'messageCount': 0}}, {multi: true});

db.getCollection('rooms').update( {}, { $set: {'messageCount': 0}}, { upsert: true, multi: true } ); db.getCollection('rooms').find({});

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"
}

Клиенты

http://3t.io/mongochef/download/platform

http://robomongo.org/

https://github.com/jeromelebel/MongoHub-Mac

https://docs.mongodb.org/ecosystem/tools/administration-interfaces/

http://mongodb-tools.com/

Статьи

https://habrahabr.ru/post/252129/