前言
Mongodb是一個非關系型數據庫軟件(NoSql),以類似json的形式bson存儲數據,bson有二進制的json的意思,官方說bson的效率更高,很適合存儲類似于對象的數據,這里權當把自己學習的過程記錄下來。
關于MongoDB的安裝方法給大家推薦下面這幾篇文章:
1、Linux下安裝MongoDB的實現步驟
2、window下安裝配置mongodb的教程圖解
3、Mac中mongoDB的安裝與卸載步驟詳解
好了,下面開始本文的正文:
MongoDB:NoSQL數據庫
MongoDB中的重要指示點
1、MongoDB中的三要素
2、MongoDB中的數據存儲是以Bson的形式存儲的,Bson是二進制的json,所以看上去記錄的形式類似于json數據
3、MongoDB中集合中的數據不同于關系型數據庫中的數據,MongoDB中文檔結構可以不同,因此擴展性非常好
MongoDB的優點:易擴展、高性能、靈活的數據模型
MongoDB的缺點:數據重復存儲,占用空間大
MongoDB啟動
命令行(終端)啟動命令
- mongod : 運行服務端
- mongo: 啟動客戶端
查看幫助命令,默認端口,日志位置
- 查看幫助:
mongod –help
- 查看是否啟動成功:
ps ajx|grep mongod
- 默認端⼝:27017
- 日志的位置:/var/log/mongodb/mongod.log
mongodb客戶端
- 啟動本地客戶端:mongo
- 查看幫助:
mongo –help
- 退出:exit或者ctrl+c
MongoDB的基礎命令
操作數據庫命令
查看當前的數據庫:db
查看所有的數據庫:show dbs /show databases
切換數據庫:use db_name刪除當前的數據庫:db.dropDatabase()
顯示當前數據庫狀態:db.stats()
當前數據庫版本:db.version()
查看當前數據庫的鏈接機器地址:db.getMongo()
操作集合的命令
不手動創建集合:
- 向不存在的集合中第⼀次加⼊數據時, 集合會被創建出來
手動創建結合:
創建用戶:db.createUser({user:"laowang",pwd:"123456",roles:[{role:"userAdmin",db:"stu"}]})
db.createCollection(name,options)
db.createCollection("stu")
db.createCollection("sub", { capped : true, size : 10 } )
- 參數capped: 默認值為false表示不設置上限,值為true表示設置上限
- 參數size: 當capped值為true時, 需要指定此參數, 表示上限⼤⼩,單位為字節
檔達到上限時, 會將之前的數據覆蓋, 最早添加的數據移出, 其余上移, 最后添加在最后一條
顯示當前所以用戶:show users
刪除用戶:db.removeUser("userName")
查看集合: show collections
刪除集合: db.集合名稱.drop()
mongo中的數據類型
Object ID: ⽂檔ID
String: 字符串, 最常⽤, 必須是有效的UTF-8
Boolean: 存儲⼀個布爾值, true或false
Integer: 整數可以是32位或64位, 這取決于服務器
Double: 存儲浮點值
Arrays: 數組或列表, 多個值存儲到⼀個鍵
Object: ⽤于嵌⼊式的⽂檔, 即⼀個值為⼀個⽂檔
Null: 存儲Null值
Timestamp: 時間戳, 表示從1970-1-1到現在的總秒數
Date: 存儲當前⽇期或時間的UNIX時間格式
注意事項:
創建⽇期語句如下 :參數的格式為YYYY-MM-DD每個⽂檔都有⼀個屬性, 為_id, 保證每個⽂檔的唯⼀性
可以⾃⼰去設置_id插⼊⽂檔,如果沒有提供, 那么MongoDB為每個⽂檔提供了⼀個獨特的_id, 類型: objectID
objectID是⼀個12字節的⼗六進制數(了解):
- 前4個字節為當前時間戳
- 接下來3個字節的機器ID
- 接下來的2個字節中MongoDB的服務進程id
- 最后3個字節是簡單的增量值
插入數據
db.集合名稱.insert(document)插⼊⽂檔時, 如果不指定_id參數, MongoDB會為⽂檔分配⼀個唯⼀的ObjectId類型的_id
db.stu.insert({name:'gj',gender:1})
db.stu.insert({_id:"20170101",name:'gj',gender:1})
插入單條指定為字典, 插入多條指定為列表
保存
db.集合名稱.save(document)
如果⽂檔的_id已經存在則修改, 如果⽂檔的_id不存在則添加
區別于: insert如果存在直接報錯
簡單查詢:
db.集合名稱.find()
更新
語法: db.集合名稱.update(query> ,update>,{multi: boolean>})
- 參數query:查詢條件
- 參數update:更新操作符
- 參數multi:可選, 默認是false,表示只更新找到的第⼀條記錄, 值為true表示把滿⾜條件的⽂檔全部更新
舉例:注意:"multi update only works with $ operators" 更新全部,必須使用 $set
db.stu.update({name:'hr'},{name:'mnc'})
更新一條,沒有更新的字段會丟棄.
db.stu.update({name:'hr'},{$set:{name:'hys'}})
更新一條
db.stu.update({},{$set:{gender:0}},{multi:true})
更新全部
刪除
語法: db.集合名稱.remove(query>,{justOne: boolean>})
- 參數query:可選,刪除的⽂檔的條件
- 參數justOne:可選, 如果設為true或1, 則只刪除⼀條, 默認false, 表示刪除多條
總結:
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
您可能感興趣的文章:- Ubuntu下安裝PHP的mongodb擴展操作命令
- MongoDB常用操作命令大全
- MongoDB常用數據庫命令大全
- mongodb基本命令實例小結
- MongoDB Shell 命令實例總結【進階篇】
- MongoDB使用mongoexport和mongoimport命令,批量導出和導入JSON數據到同一張表的實例
- mongodb監控工具mongostat的使用及命令詳解
- Mongodb 啟動命令mongod參數說明(中文翻譯)
- MongoDB使用自帶的命令行工具進行備份和恢復的教程
- MongoDB數據庫常用的10條操作命令