MongoDB基礎命令以及操作示例詳解

Mongodb:是一種NoSQL數據庫,下面這篇文章主要給大家介紹了關於MongoDB基礎命令以及操作的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或工作具有一定的參考學習價值,需要的朋友們下面隨着小編來一起學習學習吧

前言

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, 保證每個⽂檔的唯⼀性

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

總結:

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對神馬文庫的支持。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章