mongodb --version
mongod --help
mongod --dbpath d:\soft\mongodb\mdb4.2.6
mongo
mongodump -h 127.0.0.1 -d loginserver -o D:\soft\mongodb\db-backup\
mongodump -h 127.0.0.1 -d loginsaveserver -o D:\soft\mongodb\db-backup\
mongoexport -h 127.0.0.1 -d loginserver -c users --type=json -o D:\soft\mongodb\db-backup\users.json
安裝完成后,shell交互式下輸入mongo就可以直接無密碼登錄到數據庫。
show dbs; #查看全部數據庫 show collections; #顯示當前數據庫中的集合(類似關系數據庫中的表) show users; #查看當前數據庫的用戶信息 use <db name>; #切換數據庫跟mysql一樣 db;或者db.getName(); #查看當前所在數據庫 db.help(); #顯示數據庫操作命令,里面有很多的命令 db.foo.help(); #顯示集合操作命令,同樣有很多的命令,foo指的是當前數據庫下,一個叫foo的集合,並非真正意義上的命令 db.foo.find(); #對於當前數據庫中的foo集合進行數據查找(由於沒有條件,會列出所有數據) db.foo.find( { a : 1 } ); #對於當前數據庫中的foo集合進行查找,條件是數據中有一個屬性叫a,且a的值為1
創建一個test數據庫例子:
> use test; #創建數據庫 switched to db test > db; test > show dbs; #檢查數據庫 admin 0.000GB local 0.000GB > db.test.insert({"_id":"520","name":"xiaoming"}) #創建表 WriteResult({ "nInserted" : 1 }) > db.createUser({user:"xiaoming",pwd:"123456",roles:[{role:"userAdmin",db:"test"}]}) #創建用戶 Successfully added user: { "user" : "xiaoming", "roles" : [ { "role" : "userAdmin", "db" : "test" } ] }
db.removeUser("userName"); #刪除用戶
show users; #顯示當前所有用戶
db.dropDatabase(); #刪除當前使用數據庫
> show dbs; admin 0.000GB local 0.000GB test 0.000GB test_1 0.000GB > db; test_1 > db.dropDatabase(); { "dropped" : "test_1", "ok" : 1 } > show dbs; admin 0.000GB local 0.000GB test 0.000GB
db.stats(); #顯示當前db狀態
> db.stats(); { "db" : "test_1", "collections" : 0, "views" : 0, "objects" : 0, "avgObjSize" : 0, "dataSize" : 0, "storageSize" : 0, "numExtents" : 0, "indexes" : 0, "indexSize" : 0, "fileSize" : 0, "ok" : 1 }
db.version(); #當前db版本
> db.version(); 3.4.10
db.getMongo(); #查看當前db的鏈接機器地址
> db.getMongo(); connection to 172.16.40.205:27017
mongodb find查詢文檔
基本語法: db.表名.find({'key':'value'}); 實例: > show dbs; admin 0.000GB easy-mock 0.001GB local 0.000GB > use easy-mock switched to db easy-mock > db easy-mock > show collections; groups mock_counts mocks projects user_group user_project users > db.users.find({'name':'xiaoming'}); { "_id" : ObjectId("5bc859307e81d95b15f67c5c"), "head_img" : "//img.souche.com/20161230/png/fd9f8aecab317e177655049a49b64d02.png", "nick_name" : "1539856688465", "password" : "$2a$08$7mAecPo6N8ATesAxfKrPG.wb10Ns.LfntUNkce7p2pAJ0kAvW3fPm", "name" : "xiaoming", "create_at" : ISODate("2018-10-18T09:58:08.465Z"), "__v" : 0 }
mongodb update修改文檔
# 查找name為xiaoming的用戶,將用戶的密碼更改 > db.users.update({'name':'xiaoming'},{$set:{'password':'$2a$08$UIEXZ7uK1opggCsTkmE2buE.EuWjchH42GYDnPcEn0PL/Y5dVT7l2'}})
> db.users.find({'name':'xiaoming'});
{ "_id" : ObjectId("5bc859307e81d95b15f67c5c"), "head_img" : "//img.souche.com/20161230/png/fd9f8aecab317e177655049a49b64d02.png", "nick_name" : "1539856688465", "password" : "$2a$08$UIEXZ7uK1opggCsTkmE2buE.EuWjchH42GYDnPcEn0PL/Y5dVT7l2", "name" : "xiaoming", "create_at" : ISODate("2018-10-18T09:58:08.465Z"), "__v" : 0 }
開啟遠程訪問
編輯配置文件:vi /etc/mongod.conf bindIp: 172.16.40.205 #數據庫所在服務器IP地址 保存重啟數據庫! 本地登錄:mongo 172.16.40.205/admin -uadmin -p123456 遠程登錄: 1. 下載mongodb壓縮包 mongodb-linux-x86_64-3.4.10.tgz 2. 解壓 > tar zxvf mongodb-linux-x86_64-3.4.10.tgz 3. 進入bin目錄 > cd mongodb-linux-x86_64-3.4.10/bin 4. 連接遠程數據庫 > ./mongo 172.16.40.205:27017/admin -u user -p password
mongodDB備份與恢復
一、mongodDB備份
【語法】:mongodump -h <dbhost> -d <dbname> -o <dbdirectory>
-h: MongDB所在服務器地址,例如:127.0.0.1或localhost,當然也可以指定端口號:127.0.0.1:27017 -d: 需要備份的數據庫實例名,例如:users -o: 指定備份的數據存放的目錄位置,例如:/root/mongdbbak/,當然該目錄需要提前建立,在備份完成后,系統自動在/root/mongdbbak/目錄下建立一個users目錄,這個目錄里面存放該數據庫實例的備份數據。數據形式是以JSON的格式文件存儲。 例如: mongodump -h localhost -d users -o /root/mongdbbak/
二、mongodDB恢復
【語法】:mongorestore -h <hostname><:port> -d dbname <path>
--host <:port>, -h <:port>: MongoDB所在服務器地址,默認為:localhost:27017 -d : 需要恢復的數據庫實例名,例如:users,當然這個名稱也可以和備份時候的不一樣,比如user2 --drop: 恢復的時候,先刪除當前數據,然后恢復備份的數據。就是說,恢復后,備份后添加修改的數據都會被刪除,謹慎使用! --dir: 指定備份的目錄。 例如: mongorestore -h localhost -d users --dir /root/mongdbbak/users