MongoDB基礎命令及操作

來源:互聯網
上載者:User

標籤:string   new   手動   opd   更新   var   布爾值   日誌   base   

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, 表示刪除多條

 

MongoDB基礎命令及操作

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.