Install
sudo apt install dirmngr gnupg apt-transport-https software-properties-common ca-certificates curl
curl -fsSL https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
sudo add-apt-repository 'deb https://repo.mongodb.org/apt/debian buster/mongodb-org/4.2 main'
sudo apt update
sudo apt install mongodb-org
sudo apt install mongodb-org-shell mongodb-org-tools
Backup
mongodump --host mongodb.example.net --port 27017 --username user --password 'pass' --authenticationDatabase admin --out /var/backup/mongodump --db test --collection myCollection
mongorestore --host mongodb1.example.net --port 27017 --username user --password 'pass' /var/backup/mongodump
Get database to variable
db.getSiblingDB('local')
Recover admin
mongo -u __system -p "$(tr -d '\011-\015\040' < path-to-keyfile)" --authenticationDatabase local
db.createUser({user:"admin",pwd:"ROOT_PASSWORD",roles:["root"]});
Show current user
db.runCommand({connectionStatus: 1})
Show version
db.version()
Find master
db.isMaster()
Show logged users
db.runCommand({connectionStatus : 1})
Interactive
mongo --port yourport yourdb -u user -p password
List databases
show dbs
db.adminCommand( { listDatabases: 1 } )
Drop database
db.dropDatabase
List collections
show collections
db.getCollectionNames()
Show collection row count
db.yourcollection.count()
db.getCollectionNames().forEach(function(coll) { print(coll + ' ' + db[coll].count()) });
Show collection size
db.yourcollection.totalSize()
db.getCollectionNames().forEach(function(coll) { print(coll + ' ' + db[coll].totalSize() / 1024 / 1024 + ' MB') });
Eval command
mongo yourdb -u user -p password --eval 'db.serverStatus()'
Check status
db.serverStatus()
Clear collection
db.collection.remove({})
Show current db
db
List records
db.collectionName.find().pretty()
List users
db.getUsers()
List indexes
db.people.getIndexes()
Python
pymongo
from pymongo import MongoClient
c = MongoClient('mongodb://mongo:27017', replicaSet="rs0", read_preference=ReadPreference.PRIMARY)
c.admin.command('ismaster')
django mongo
c = mongoengine.connection
c.get_db().command('ismaster')
mongoengine
import mongoengine
c = mongoengine.get_connection()
c.admin.command('ismaster')
Remove member
cfg = rs.conf();
cfg.members.splice(start, deleteCount);
rs.reconfig(cfg, {force: true});
Reconfigure
rs.reconfig(rs.config(), {force: true})
Add member to replica
mongo --shell admin
rs.add("yourhost:27017")
don't node elect as primary
rs.add( { host: "yourhost:27017", priority: 0, votes: 0 } )
Promote another node to primary (master)
cfg = rs.conf()
cfg.members[0].priority = 0.5
cfg.members[1].priority = 0.5
cfg.members[2].priority = 1
rs.reconfig(cfg)
Remove member from replica
rs.remove("yourhost:27017")
Check replica status
rs.status()
Show replica config
rs.conf()
Call mongorestore
docker run --interactive --tty --volume /tmp/data_dir:/mongorestore-data mongo:4.0.10 /usr/bin/mongorestore
Call mongodump
docker run --interactive --tty --volume /tmp/data_dir:/mongodump-data mongo:4.0.10 /usr/bin/mongodump
Call mongo
docker run --interactive --tty mongo:4.0.10 /usr/bin/mongo