Подключиться с паролем:
mongo -u 'root' -p 'pass' --authenticationDatabase "admin"
Показать список баз:
show dbs
db.adminCommand('listDatabases')
Показать текущую БД:
db
Список пользователей:
db.getUsers()
Восстановление БД (Выбираем use)
db.repairDatabase()
Создать пользователя:
use <database>
db.createUser({user: "USER", pwd: "PASSWORD", roles: [{role: "readWrite", db: "DATABASE"}]})
Удалить пользователя:
admin.dropUser( "USER1" )
Просмотреть список всех коллекций в текущей БД:
show collections
Создание коллекции
db.createCollection("name")
db.createCollection(«profile», {capped:true, size:8000, max: 100})
/* Ограниченная коллекция размером 8000 байт и максимальным количеством документов 100. Если все место под коллекцию заполнено (например, выделенные нами 9500 байтов), а количество документов еще не достигло максимума, то в этом случае при добавлении нового документа самый старый документ будет удаляться, а на его место будет вставляться новый документ.
*/
Переименование коллекции:
db.users.renameCollection("NEWNAME")
Вставка в документа:
db.users.insert ({«name»: «Tom», «age»: 28, languages: [«english», «spanish»]})
document=({«name»: «Bill», «age»: 32, languages: [«english», «french»]})
db.users.insert(document)
db.posts.insert( [
{title: "blog post 1 title", body: "blog post 1 content"},
{title: "blog post 2 title", body: "blog post 2 content"},
])
Обновление документов:
db.posts.updateOne({"_id": 1}, {$set: {"title": 'updated title'}})
db.posts.update({"category": "technology"}, {$set: {"category": 'computer science'}})
Ограничение имен ключей:
- Символ $ не может быть первым символом в имени ключа
- Имя ключа не может содержать символ точки .
- _id не рекомендуется использовать
Вывод содержимого коллекции документов:
db.users.find()
db.posts.find().pretty() // Вывод с JSON форматированием
db.users.find().limit(3) // Вывести только 3 документа
db.users.find().skip(3) // Пропустить первые 3 записи
db.users.find().sort({name: 1}) // Сортировать: по возрастанию (1) или по убыванию (-1)
db.users.find().sort({name: 1}).skip(3).limit(3) // Все в одном
Поиск по коллекции документов:
db.users.find({name: «Tom»})
db.users.find({name: «Tom», age: 32}) // Логическое И
db.users.find({name: «Tom»}, {age: 1}) // Вывести только свойство age
db.users.find({name: «Tom»}, {age: 1}) // Вывести все свойства кроме age
Группировка документов:
db.users.count()
db.users.find({name: «Tom»}).count() // Только определенных документов
db.users.distinct("name") // Уникальные документы в рамках поля 'name'
Удаление:
db.users.remove({name : «Tom»})
db.users.remove({}) // Удалить все коллекции из документов
db.users.drop() // Удалить коллекцию
db.dropDatabase() // Удалить БД
Добавление:
db.posts.createIndex({"title": 1})
db.posts.createIndex({"title": 1, "date": 1}) // Составной индекс
Получение списка индексов:
db.posts.getIndexes()
Удаление:
db.posts. dropIndex("title_1")
Статистика:
db.posts.stats() // Статистика по индексам
db.posts.totalIndexSize() // Размер индекса
Показать коннекты текущее состояние
db.serverStatus()
db.serverStatus().connections
db.serverStatus().metrics
db.serverStatus().metrics.commands
Счетчик коннектов
db.currentOp(true).inprog.reduce((accumulator, connection) => { ipaddress = connection.client ? connection.client.split(":")[0] : "Internal"; accumulator[ipaddress] = (accumulator[ipaddress] || 0) + 1; accumulator["TOTAL_CONNECTION_COUNT"]++; return accumulator; }, { TOTAL_CONNECTION_COUNT: 0 })
Cостояние реплика-сетов
rs.conf()
rs.status()
rs.printReplicationInfo()
Бекап и восстановление всех баз данных без сжатия:
mongodump --out /backup
mongorestore --dryRun -vvv --dir /backup // Режим dry-run
mongorestore --drop --dir /backup
Восстановление определенной коллекции:
mongorestore --drop -v --dir /backup --nsInclude 'mydb.mycollectionname'
Восстановление всех БД и коллекций кроме определенной коллекции:
mongorestore --drop -v --dir /backup --nsExclude 'mydb.mycollectionname'
Бекап и восстановление всех баз данных с сжатием:
mongodump --gzip --out /backup
mongorestore --gzip --drop --dir /backup
Бэкап и восстановление всех БД с сжатием в один архив:
mongodump --gzip --archive=/backup/mybackup.gz
mongorestore --gzip --drop --archive=/backup/mybackup.gz
Бэкап определенной БД:
mongodump --gzip -d mydb
Бекап одной коллекции из базы данных:
mongodump --gzip -d mydb -c mycollection