簡易安裝linux
# redhat, centOS sudo yum install -y mongodb # debian, ubuntu sudo apt install -y mongodb
若是簡易安裝失敗,各類操做系統具體的安裝請移步官方文檔:mongodb
https://docs.mongodb.com/manual/administration/install-on-linux/shell
vi /etc/mongod.conf
數據庫
bind_ip
默認是127.0.0.1
,只能夠本地鏈接,修改成0.0.0.0
便可ubuntu
MongoDB 數據文件默認存儲在 /var/lib/mongo 目錄,默認日誌文件在 /var/log/mongodb 中。數組
若是要修改,能夠在 /etc/mongod.conf 配置中指定備用日誌和數據文件目錄。服務器
查看MongoDB是否啓動成功:app
查看日誌文件:cat /var/log/mongodb/mongod.log
性能
日誌文件應該有以下一句說明:操作系統
[initandlisten] waiting for connections on port <port>
yum erase $(rpm -qa | grep mongodb-org)
移除數據庫文件和日誌文件
rm -r /var/log/mongodb
rm -r /var/lib/mongo
查看幫助:mongod --help
啓動:systemctl start mongod
中止:systemctl stop mongod
重啓:systemctl restart mongod
查看是否啓動成功: ps aux | grep mongod
配置文件位置:/etc/mongo.conf
默認端口:27017
日誌的位置:/var/log/mongodb/mongod.log
查看當前數據庫:db
查看全部數據庫:show databases/dbs
切換/新建數據庫:use databaseName
刪除當前數據庫:db.dropDatabase()
不手動建立集合:
向不存在的集合中第一次加入數據時,集合會被建立出來
手動建立集合:
db.createCollection(name,options) eg:——db.createCollection('sub',{capped:true, size:10})
capped:默認值爲false表示不設置上限,true相反
size:當capped爲true時,須要指定此參數,表示上限的大小,當文檔達到上限,會覆蓋以前的數據。相似於先進先出隊列。
查看集合:show collections
查看所有集合內容:db.collectionName.find()
刪除集合:db.collectionName.drop()
查詢指定記錄:db.collectionName.find("name": "李四")
插入數據:
# 若是數據庫中不存在集合,就建立並插入這些數據。裏面的key-value不用保持一致 db.student.insert({"name":"小明","age":"12","sex":"男","class":"六年級一班"}); db.student.insert({"name":"小紅","age":"12","sex":"女","phone":"18513081650","class":"六年級二班"}); #同時插入多條數據 db.student.insert([{"name":"小李子","age":"12","sex":"男","class":"六年級二班"},{"name":"小麗","age":"12","sex":"女","phone":"18513081650","class":"六年級一班"}]);
更新數據:
db.student.update({"name":"小明"},{"name":"張小明"});#若是有多條語句,只修改第一條,會覆蓋原有數據 db.student.update({"12":"女"},{"name":"劉小花"}); db.student.update({"name":"小李子"},{$set:{"name":"李小子"}});#只想改某個key的value使用set db.student.update({"name":"小麗"},{$set:{"name":"周小麗"}},{multi:true});#把全部的記錄都改了
查詢數據:
# 查詢所有 db.student.find(); # 查詢指定記錄,返回這一行結果 db.student.find({"name":"小麗"}); db.student.update({"name":"李小子"},{"name":"李子小","age":"12","sex":"男"}); # and操做 db.student.find({"name":"李子小","age":"12"}); # or操做 db.student.find({$or:[{"name":"李子小"},{"name":"張小明"}]}); # 格式化顯示 db.student.find().pretty(); # 獲取結果的行數 db.student.find().count(); # 按照sort裏面key的值排序,1爲正序,-1爲倒序 db.student.find().sort({"age":-1});
刪除數據:
# 刪除全部數據 db.student.remove(); # 按照條件刪除 db.student.remove({"22":"女"}); # 刪除幾條 db.student.remove({"sex":"男"},2);
建立用戶:
db.createUser({ user: "your_user", pwd: "password", roles: [{role: "readWrite",db: "your_db"}] })
Object ID: 文檔ID
String: 字符串,必須是有效的UTF-8
Boolean: true or false
integer: 能夠是32或64,這取決於服務器
Double:存儲浮點值
Arrays: 數組或列表,多個值存儲到一個鍵
Object: 用於嵌入式文檔,即一個值爲一個文檔
Null: 存儲Null值
Timestamp: 時間戳,表示從1970-1-1到如今的總秒數
Date:存儲當前日期或時間的Unix時間格式
db.adminCommand({setFeatureCompatibilityVersion:'4.0'})
// 修改版本到4.0db.adminCommand( { setParameter: 1, transactionLifetimeLimitSeconds: 300 } )
// 修改事務超時時間爲5分鐘開啓事務支持db.adminCommand( { setParameter: 1, maxTransactionLockRequestTimeoutMillis: 20 } )
// 修改事務獲取鎖的等待時間20毫秒db.adminCommand( { getParameter: 1, transactionLifetimeLimitSeconds: 1 } )
db.isMaster()
mongoexport -h localhost -d dbname -c collname -f field1,field2 --csv -o output.csv
文件路徑:/etc/mongod.conf
verbose:
日誌信息冗餘,默認false。提升內部報告標準輸出或記錄到logpath配置的日誌文件中,要啓用verbose或啓用verbosity用vvvv參數。 eg:verbose = true 或 vvvv = true ps:啓動verbose冗長信息,級別有vv~vvvvv,v越多級別越高,日誌文件中記錄的信息越詳細。
port:
端口。默認27017,MongoDB的默認服務TCP端口,監聽客戶端鏈接。要是端口設置小於1024,好比1021,則須要root權限啓動,不能用mongodb帳號啓動,不然報錯。 port = 27017
bind_ip:
綁定地址。默認是127.0.0.1,只能經過本地鏈接。進程綁定和監聽來自這個地址上的應用鏈接。要是須要給其餘的服務器鏈接,則須要註釋掉這個或者把IP改爲本機地址,能夠用逗號分隔的列表綁定多個IP地址。 bind_ip = 0.0.0.0
maxConns:
最大鏈接數。默認值:取決於系統限制。MongoDB中不會限制其自身的鏈接。當設置大於系統的限制,則無效,以系統限制爲準。這對於客戶端建立不少集合,容許鏈接超時而不關閉集合的時候,頗有用。 控制流量峯值時的鏈接。 ps:不能設置該值大於20000。 eg: maxConns = 100
objcheck:
強制驗證客戶端請求。強制驗證客戶端請求,確保客戶端毫不插入無效文件到數據庫中。對於嵌套文檔的對象,會有一點性能影響。 eg: objcheck = true 或 noobjcheck = false
logpath:
指定日誌文件,該文件將保存全部的日誌記錄,診斷信息。除非另有指定,mongod將全部的日誌信息輸出到標準輸出。若是沒有指定logappend,重啓則日誌會進行覆蓋操做。 logappend:寫日誌的模式,設置爲true爲追加。默認時覆蓋。若是未指定此設置,啓動時MongoDB將覆蓋現有的日誌文件。 logappend = true
syslog:
日誌輸出都發送到主機的syslog系統,而不是標準輸出到logpath指定日誌文件。syslog和logpath不能一塊兒用,會報錯:Cant use both a logpath and syslog
pidfilepath = /var/run/mongo.pid:
進程ID,沒有指定則啓動時就沒有PID文件,默認缺省。 pidfilepath = /var/run/mongo.pid
ps: 平時用一點查一點,而後記一點,再加上一些本身遇到的查官方文檔,最後匯聚成這樣的一篇博客。若以爲有冒犯的,請私信或者留言,會著名。