MongoDB基礎命令及操作


MongoDB:NoSQL數據庫

  • MongoDB中的重要指示點
    • MongoDB中的三要素
      • 數據庫
      • 集合
      • 文檔
    • MongoDB中的數據存儲是以Bson的形式存儲的,Bson是二進制的json,所以看上去記錄的形式類似於json數據
    • 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, 保證每個⽂檔的唯⼀性
    • new Date('2017-12-20')
  • 可以⾃⼰去設置_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, 表示刪除多條

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM