天天看點

<圖解>MongoDB快速入門如果把mysql比作大名鼎鼎的c語言;那麼mongodb就是簡單友好的pythonMysql資料庫有什麼缺陷?關系型資料庫的"連接配接查詢"會影響查詢效率?連接配接查詢效率低,為什麼還要分表?資料庫可以不使用複雜的表結構麼?與Mysql相比,Mongodb簡單極了!MongoDB基本用法

MongoDB快速入門

如果把mysql比作大名鼎鼎的c語言;那麼mongodb就是簡單友好的python

Mysql資料庫有什麼缺陷?

  • 關系型資料庫表結構複雜,擴充性差;
  • 需要較高的學習成本,複雜的表結構會産生更高的維護成本

關系型資料庫的"連接配接查詢"會影響查詢效率?

  • 會使查詢效率變低

連接配接查詢效率低,為什麼還要分表?

  • 分表可以減少資料備援

資料庫可以不使用複雜的表結構麼?

  • 可以,但要多消耗一些存儲空間,mongodb(非關系型資料庫)就為此而生

與Mysql相比,Mongodb簡單極了!

<1>mongo預設開啟了新手模式,登入無需鍵入使用者名和密碼,隻需要在終端輸入

mongo

即可進入互動環境

<2> mongo沒有"表"的概念,也不用設計表(mongo使用"集合"存儲 多個"鍵值對",取代表的功能)

<3> mongo有資料庫的概念,但可以不經建立,直接使用(類似vim編輯器建立新檔案,如果新檔案中未添加資料,則新檔案不會儲存到硬碟;與vim不同的是,如果使用者添加了資料,vim需要手動确認,儲存檔案,mongo會自動儲存資料到相應的資料庫)

<4>mongo沒有mysql中"記錄"的概念,mongo使用"文檔"存儲任意數量的"鍵值對"資訊("記錄"中的資訊受表中各字段的限制,"文檔"可以存放任意數量的鍵值對)

<5>mongo無需手動設定"主鍵",系統會自動為每一個"文檔"自動添加"_id"鍵值對,保證資料的唯一性.

關系型資料庫mysql 與 非關系型資料庫mongodb 概念對比

mysql mongodb
表(table) 集合(collection)
記錄(row) 文檔(document)
主鍵(primary key)

手動設定

_id

自動生成

MongoDB基本用法

一.資料庫管理系統

1.服務端

  • (1)開啟服務
    • 示例
      • sudo service mongod start

  • (2)重新開機服務
      • sudo service mongod restart

  • (3)關閉服務
      • sudo service mongod stop

2.用戶端

  • (1)登入資料庫
      • mongo

  • (2)退出資料庫
      • exit

二.資料庫

1.檢視資料庫

    • show dbs

2.使用資料庫

  • 格式
    • use 資料庫名
    • use students

3.檢視目前資料庫

    • db

4.删除目前資料庫

    • db.dropDatabase()

三.集合

1.建立集合

    • db.createCollection("集合名稱")
  • 示例(建立名為

    stu

    的集合)
    • db.createCollection("stu")

2.檢視目前資料庫的集合

    • show collections

3.删除集合

    • db.drop.集合名()
  • 示例(移除名為

    stu

    的文檔)
    • db.drop.stu()

四.文檔

1.插入文檔

    • db.集合名.insert({})
    • db.stu.insert({name:"李明",age:18,gender: true,birthday:"1995-12-08",height:186.6})

2.删除文檔

    • db.集合名.remove({删除文檔的條件})
  • 示例(移除age=18的文檔)
    • db.stu.remove({age:{$gt:18}})

3.修改文檔

    • db.集合名.update({修改文檔的條件},{$set:{需要修改的屬性名:屬性值}}, {multi: ture})
  • 示例(将age=17的文檔更新為 age=18)
    • db.stu.update({age:18},{$set:{age:17}},{multi:true})

4.查詢文檔

  • 格式(pretty是為了把結果格式化為json格式)
    • db.集合名.find({查詢文檔的條件}).pretty()
  • 示例(篩選age大于10的文檔)
    • db.stu.find({age:{$gt:10}}).pretty()

MongoDB