1. 程式人生 > >MongoDB安裝及操作

MongoDB安裝及操作

MongoDB

簡介

  • MongoDB 是一個基於分散式檔案儲存的資料庫。由C++語言編寫。旨在為WEB應用提供可擴充套件的高效能資料儲存解決方案。
  • MongoDB 是一個介於關係資料庫和非關係資料庫之間的產品,是非關係資料庫當中功能最豐富,最像關係資料庫的。

安裝

  • 安裝:sudo apt-get install mongodb
  • 測試:
    • 檢視程序:ps -ef | greop mongo
    • 客戶端連線:mongo
  • 埠:27017

MySQL與MongoDB對比

  • MySQL MongoDB
    database db(資料庫)
    table collection(集合)
    一條資料 document(文件)

db操作

  • 檢視所有資料庫:show dbs
  • 檢視當前資料庫:db 或者 db.getName()
  • 建立或切換資料庫:use python1801
    • 若使用的資料庫不存在則建立然後切換,存在則切換
    • 新建的資料庫中沒有資料時,show dbs顯示不出來
  • 刪除當前使用資料庫:db.dropDatabase()
  • 退出:exit 或 quit()
  • 檢視幫助:help

collection操作

  • 檢視當前資料庫的所有集合:show collections
  • 建立集合:
    • 單純建立:db.createCollection(‘user’),建立一個空集合
    • 按需建立:db.stu.insert({name:‘lufei’,age:22}),直接使用不存在的集合,並且插入資料
  • 刪除集合:db.stu.drop()

document操作

  • 增加文件:
    • insert

      插入一條資料

      db.user.insert({name:‘hao’,age:23,height:175,isDelete:0})

      插入多條資料

      db.user.insert([{name:‘jiang’,age:25,height:165,isDelete:0},{name:‘yang’,age:26,height:178,isDelete:0}])

    • save

      不指定_id欄位,功能等價於insert

      db.user.save({name:‘binge’,age:24,height:174,isDelete:0})

      指定_id欄位,相當於更新操作

      db.user.save({_id:ObjectId(“5ad9600ad43bd178471b852f”),name:‘binge’,age:30,height:174,isDelete:0})

  • 更新文件
    • save:儲存文件時,需要指定_id欄位
    • update:db.集合.update(query,update,{upsert:, multi:})
      db.user.update({isDelete:0}, {$set:{isDelete:1}}, {multi:true})
      query:表示查詢條件
      update:表示更新設定,
      $set:表示設定
      $inc:表示增加
      upsert:更新的查詢結果不存在,是否作為新資料插入
      multi:符合條件的資料是否全部更新,true表示全部更新,flase表示只更新一條
  • 刪除文件:
    • remove:db.集合.remove(query, {justOne:})
      db.user.remove({name:‘binge’}) # 預設刪除所有
      db.user.remove({age:26},{justOne:true}) # 只刪除一條
  • 查詢文件:db.user.find()
    • 格式:db.集合.find(query,{key1:0,key2:0})
    • 說明:
      • query表示查詢條件,
      • 第二個引數值為1表示要顯示的欄位,為0表示不顯示的欄位
      • 選擇欄位或排除欄位只能選擇一種情況,要麼都選擇,要麼都排除
    • pretty():格式化顯示文件(以字典形式)
      db.user.find().pretty()
    • findOne():查詢一條文件
      db.user.findOne({isDelete:0})

查詢條件操作符

  • 大於:$gt
    • 格式:db.集合.find({:{$gt:}})
    • 示例:db.user.find({height:{$gt:166}})
  • 大於等於:$gte
  • 小於:$lt
  • 小於等於:$lte
  • 等於:不寫符號就是等於
  • 多個條件:db.user.find({height:{ g t : 160 , gt:160, lt:170}})
  • 統計:count(),示例:db.user.find().count()
  • 正則:db.集合.find({:/正則表示式/})

條件合併and/or

  • and:表示並且
    • 格式:db.集合.find({條件1,條件2})
    • 示例:db.user.find({isDelete:0, height:{$gt:170}})
  • or:表示或者
    • 格式:db.集合.find({$or:[{條件1},{條件2}]})
    • 示例:db.user.find({KaTeX parse error: Expected '}', got 'EOF' at end of input: or:[{height:{gt:175}},{height:{$lt:170}}]})

限制結果集

  • 限制:limit()
    • 示例:db.user.find().limit(1)
  • 跳過:skip()
    • 示例:db.user.find().skip(1).limit(1)

結果集排序:

  • 格式:db.集合.find().sort({:1/-1})
    • 說明:1表示升序,-1表示降序
  • 示例:db.user.find().sort({height:-1})

python操作mongodb

  • 安裝擴充套件庫:pip3 insatll pymongo