MongoDB筆記

use foobar                                 指向數據庫
db                                                 查看指定的數據庫是哪個.打印出名字
db.ts.insert({"Name":"Enel"})     往ts表裏面插入 Key:Name Value:Enel
db.ts.find()                                    查看ts表
db.ts.findOne()                            僅僅查找一個 返回找到的表.用該表進行update操作
db.ts.update(查找表的鍵值對,修改後的表)                     更新操作
db.ts.update(查找到的表,跟上要找的鍵值對)            也可以修改值
db.ts.remove({name:"Enel"})        刪除全部名字叫Enel的
修改器:
$inc                                               db.ts.update({"age":30},{"$inc":{"age":1}}) 會把age變量 +1操作.
$set                                            用來制定一個鍵的值.如果這個建不存在,則創建它.
$unset                                        用來刪除鍵

修改器數組操作
$push                                        往鍵值裏面插入數組.數組裏面可以是結構.會一直往後添加
$ne                                            不在數組裏就把其加進去.反之不加
$addToSet                                和ne同理..但是可以嵌套$each使用  例如. {$addToSet: {"emails":{"$each":["a", "b", "c"]}}}
$pop                                        {$pop : {key : 1}}從末尾刪除一個數組元素  -1從頭刪除一個數組元素
$pull                                        刪除數組中所有指定的值

數組定位修改器 $                    只有第一條會修改

條件查詢 配合find使用
$lt                                            <
$lte                                            <=
$gt                                            >
$gte                                        >=

$in                                            可以用來查詢一個鍵的多個值
$or                                            更通用一些 用來完成多個鍵值的任意給定值
$nin                                        返回與數組中所有條件都不匹配的文檔.
$not                                        
$mod                                    可以配合not使用. find({"id_num":{"$not":{"$mod":[5,1]}}})
20~30的用戶.                        find({"age":{"$lt":30, "$gt":20}})
$exists                                    判斷鍵值已經存在

查詢數組
$all                                        需要多個元素來匹配數組
$size                                    查詢指定長度的數組
$slice                                    返回數組的一個子集合

$where                                後面可以加個函數來使用
ensureIndex                        設置索引

$ ./mongodump -d DBNAME -o backup
$ ./mongorestore -d foo --drop backup/test/

db.runCommand({"serverStatus":1})
db.runCommand({"fsync":1,"lock":1})
db.$cmd.sys.unlock.findOne()
db.currentOp()

mongod --repair
db.repairDataBase()
{"repairDatabase":1}

啓動主服務器
mongod --master
啓動從服務器
mongod --slave --source master_address

--only 在從節點上指定只複製特定某個數據庫(默認複製所有數據庫)
--slavedelay用在從節點上,當應用主節點的操作時增加延時.這樣就能輕鬆設置延時從節點了.這種節點對用戶無意中刪除重要文檔或者插入垃圾數據等事故有很重要的防護作用.這些不良操作都會被複制到所有從節點上.
--fastsync 以主節點的數據快照爲基礎啓動從節點
--autoresync 如果從節點與主節點不同步了.則自動更新同步
-oplogSize 主節點oplog的大小

添加刪除源
use local
db.sources.insert({"host":"localhost:27017"})

導出到文件
mongoexport -d JLTX -c userlist -o user.dat

導出到CSV文件
mongoexport -d JLTX -c userlist -csv -f uid,username,age -o user_csv.dat

刪除user表
db.user.drop()

導入JSON數據到數據庫
mongoimport -d JLTX -c userlist user.dat

導入CSV數據到數據庫
mongoimport -d JLTX -c userlist --type csv --headerline --file user_csv.dat

數據備份
mongodump -d JLTX 備份到當前目錄下
mongodump -d JLTX -o JLTX_dump    備份到JLTX_dump目錄

刪除數據庫
use JLTX
db.dropDataBase()
show dbs

恢復數據庫
mongorestore -d JLTX JLTX_dump
-drop參數就會先刪除數據庫然後再插入

綁定IP內網地址訪問MongoDB服務
mongod --bind_ip 192.168.1.19
客戶端訪問就需要指明IP登陸  mongo 192.168.1.19

設置監聽端口
mongod --bind_ip 192.168.1.103 --port 89898
mongo 192.168.1.103:89898

啓動登陸驗證
mongod --auth

通過eval參數執行指定語句
mongo test --eval "printjson(db.t1.count())"

capped collection的創建
db.createCollection("name",{size:10000})
db.createCollection("name",{capped:true,size:1000000,max:100})

mongod參數說明

dbpath: 文件存放路徑
logpath: 錯誤日誌文件
bind_ip: 對外服務的綁定ip
port: 對外服務端口
fork:後臺Daemon形式運行服務
journal:開啓日誌功能
syncdelay: 系統同步刷新磁盤的時間
directoryperdb:每個db存放在單獨的目錄中.
maxConns:最大連接數
repairpath:執行repair時的臨時目錄










發佈了104 篇原創文章 · 獲贊 7 · 訪問量 42萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章