MongoDB 常用命令與經驗
Mongo基本設定
1. mongod服務開啟: mongod –auth –dbpath /var/lib/mongodb
2. mongodb資料及日誌檔案儲存位置: /var/lib/mongodb /var/log/mongodb
3. mongodb 連線服務及開啟shell: mongo 使用者所屬資料庫 -u 使用者名稱 -p 密碼 ,也可以直接執行命令“mongo”開啟shell,然後進入到對應的資料庫中再執行“db.auth(‘user’,’passwd’)”
注意:除了admin資料庫的使用者對其他資料庫都有操作許可權之外,每個資料庫的使用者只對自己的資料庫有操作許可權
4. 遠端連線mongodb mongo 主機ip:27017/資料庫 -u 使用者名稱 -p 然後再輸入密碼
MongoDB 常用命令
1. 檢視資料庫系統資訊
- show dbs
- show collections
- db.stats() :檢視當前使用的資料庫的資訊
- db.myCollection.stats():檢視當前資料庫中myCollection集合的資訊
2. 檢視資料庫集合的資訊
db.myCollection.find():找到myCollection集合中的全部資訊,後面常用的函式:
pretty():列印出找到的所有條目、
hasNext():判斷當前集合是否還有下一條條目
next():顯示當前條目,並將cursor移動到下一個
forEach(<func
>):遍歷當前集合的每一個條目,並對其執行func函式
3. 建立使用者及修改密碼: 進入到對應的資料執行如下程式碼建立使用者
db.createUser(
{
user: 'xxx',
pwd: 'xxx',
roles: [
{role:'read',db:'test'}
]
}
)
執行如下程式碼修改密碼
db.changeUserPassword('使用者名稱','密碼')
4. 插入命令
db.mycolleciton.inser()
db.myCollection.insertOne({
name:"果凍",
score:{
"數學":100,
"音樂":94, //中文字串也可以作為key
})
db.myCollection.insertMany()
5. 查詢命令
db.myCollection.find({name:"果凍"})
db.myCollection.find({name:{$in:[ "果凍", "D"]}}) //$表示運算子
db.inventory.find( { status: "A", qty: { $lt: 30 } } ) //and
db.inventory.find( { $or: [ { status: "A" }, { qty: { $lt: 30 } } ] } ) //or
db.myCollection.find( { size: { h: 14, w: 21, uom: "cm" } } ) //巢狀查詢,被巢狀項必須全部包含,如不能只有“{h:14}”
db.myCollecton.find({"size.h":14})//巢狀查詢,用dot來連線巢狀項,但是整個表示式需用引號包住
//對於包含 tags:["red","blank"] 鍵值對document的collection
db.myCollection.find({tags:["red","blank"]})
db.myCollection.find({tags:"red"})
//dim_cm是一個Array,此外列表中還可以嵌入document
db.myCollection.find( { dim_cm: { $gt: 15, $lt: 20 } } )//dim_cm中任意元素滿足gt和lt的任一項
db.myCollection.find({dim_cm:{$elemMatch:{$gt:15,$lt:20}}})//dim_cm中任意元素同時滿足gt和lt
db.myCollection.find({"dim_cm.1":{$gt:20}})//dim_cm中的第二個元素大於20
dm.myCollection.find({dim_cm:{$size:3}})
//project field(投影)
db.inventory.find({status:"A"},{item:1}) //相當於select _id,item from dnventory where statud="A",可以宣告 _id:0取消_id投影
db.inventory.find({status:"A"},{instock:{$slice:-1}) //$slice表示選擇instock的最後一個
//對於為空的鍵或者不包含的鍵
db.inventory.find({item:null})//所有item為空後者不包含item的document
db.inventory.find({item:{$type:10}})//所有item為空的document
db.inventory.find({item:{$exits:false}})//所有不包含item的document
6. 更新命令
//對於匹配不到document的命令,update和replace會插入一個document
db.inventory.update()
db.inventory.updateOne(
{ item: "paper" },
{
$set: { "size.uom": "cm", status: "P" },
$currentDate: { lastModified: true }
}
)//如果lastModified不存在,會建立,update不能更改_id,除非用replace
db.inventory.updateMany()
db.inventory.replaceOne(
{ item: "paper" },
{ item: "paper", instock: [ { warehouse: "A", qty: 60 }, { warehouse: "B", qty: 40 } ] }
)
7. 刪除命令
db.inventory.deleteMany({}) //刪除所有
db.inventory.deleteOne({}) //刪除匹配的第一個
db.inventory.delete({})
Mongo shell資料型別
1. Date(): return current date as string
2. NumberLong(“12345678”) NumberInt(“12345678”) NumberDecimal(“1213.423452342”): mongo shell將所有的數都預設視為64位浮點數,NumberLong,NumberInt分別將資料作為string接收作為64位和32位整數處理,NumberDecimal將接收String作為128位的浮點數處理
未完,待續
相關文章
- MongoDB常用命令MongoDB
- MongoDB基本常用命令MongoDB
- 使用MongoDB血淚般的經驗教訓MongoDB
- MongoDB常用命令彙總(一)MongoDB
- MongoDB shell常用命令總結MongoDB
- mongodb 備份恢復常用命令MongoDB
- PPT應用之經驗與技巧
- PyTorch經驗指南:技巧與陷阱PyTorch
- GCD使用經驗與技巧淺談GC
- Mongodb的master-slave模式與master-master模式實驗MongoDBAST模式
- mongodb原始碼實現、調優、最佳實踐系列-數百萬行mongodb核心原始碼閱讀經驗分享MongoDB原始碼
- Scrum與OKR融合實踐經驗分享ScrumOKR
- mongodb簡單分片實驗MongoDB
- LAMP架構的安裝與經驗技巧LAMP架構
- 網站速度問題排查與定位經驗網站
- 後端的一些經驗與心得後端
- Java面經 面試經驗 網際網路公司面試經驗 後端面試經驗Java面試後端
- mongodb簡單副本集實驗MongoDB
- git常用命令(史上最經典)Git
- 幽默:經驗與知識的區別 -Richard Feynman
- 中國碼農在矽谷:求職流程與經驗分享求職
- Hulu大資料架構與應用經驗大資料架構
- 移動端網頁設計經驗與心得網頁
- 簡歷與面試的一些經驗薦面試
- 主觀與客觀,破除DDD憑經驗魔咒
- Cloudflare 從 PHP 到 Go:遷移與經驗分享CloudPHPGo
- 經驗談
- Hexo · 經驗Hexo
- vux · 經驗UX
- vue · 經驗Vue
- 經驗分享 ----------
- 經驗分享
- 管理經驗分享會議記錄--【管理經驗】
- MongoDB--Mongodb 中資料匯出與匯入MongoDB
- 做實驗驗證MongoDB分頁的兩種方法MongoDB
- 菜鳥經驗:oracle與weblogic自動啟動與停止(轉)OracleWeb
- 【MongoDB】安裝與配置MongoDB
- MongoDB配置與啟動MongoDB