Mongo小結

開啓mongo的姿式:web

  cd /usr/local/mongo/bin(mongo的文件目錄的bin目錄下)正則表達式

  sudo ./mongod (開啓mongo服務)數據庫

  再新開一個終端json

  cd /usr/local/mongo/bin數組

  sudo ./mongo (進入mongo數據庫)服務器

數據庫操做:app

  use 數據庫名字    使用/建立數據庫less

  show dbs        查看全部的數據庫spa

  db.dropDatabase()    刪除當前的數據庫rest

  db          查看當前數據庫

 

集合操做:

  • 不手動建立集合: 向不存在的集合中第⼀次加⼊數據時, 集合會被建立出來
  • 手動建立結合:
    • db.createCollection(name,options)
    • db.createCollection("stu")
    • db.createCollection("sub", { capped : true, size : 10 } )
    • 參數capped: 默認值爲false表示不設置上限,值爲true表示設置上限
    • 參數size: 當capped值爲true時, 須要指定此參數, 表示上限⼤⼩,當⽂檔達到上限時, 會將以前的數據覆蓋, 單位爲字節
  • 查看集合:show collections
  • 刪除集合:db.集合名稱.drop()
  • 檢查集合是否有上限: db.集合名.isCapped()

數據操做:

    db.集合名.insert()    db.user.insert({"name":"UZI", "age": "18" })

    db.集合名.save()     db.user.save()

    db.集合名.update(<query> ,<update>,{multi: <boolean>})     

      參數query:查詢條件

      參數update:更新操做符

      參數multi:可選, 默認是false,表示只更新找到的第⼀條記錄, 值爲true表示把滿⾜條件的⽂檔所有更新

      db.user.update({"name":"UZI"},{"name":"MLXG"}) 將整個數據改成第二個{}裏的內容       db.user.update({"name":"UZI"},{$set:{"name":"hys"}}) 將數據中的某個字段改成想改的值       db.user.update({},{$set:{gender:0}},{multi:true})    將數據中的對應的值更改
  • 刪 

    db.集合名.remove(<query>,{justOne: <boolean>})

      參數query:可選,刪除的⽂檔的條件

      參數justOne:可選, 若是設爲true或1, 則只刪除⼀條, 默認false, 表示刪除多條

        db.user.remove({"name": "UZI"}, {justOne: <boolean>})

  • 基本查詢

    ⽅法find(): 查詢      

      db.集合名稱.find({條件⽂檔})

  

    ⽅法findOne():查詢,只返回第⼀個

      db.集合名稱.findOne({條件⽂檔})

  

    ⽅法pretty(): 將結果格式化

      db.集合名稱.find({條件⽂檔}).pretty()

 

  • 條件查詢

    比較查詢 

    • 等於: 默認是等於判斷, 沒有運算符
    • ⼩於:$lt (less than)
    • ⼩於等於:$lte (less than equal)
    • ⼤於:$gt (greater than)
    • ⼤於等於:$gte
    • 不等於:$ne

      db.stu.find({ age:{ $gte:18 } })        查詢年齡大於等於十八的

      db.stu.find({ time:{  $gte: ISODate("2018-05-11T13:58:51.122Z") } })  時間大於條件的結果

  • 邏輯運算查詢
    • 邏輯與

       db.stu.find({ age:{ $gte:18 }, name:UZI }) 

    • 邏輯或   or:使⽤$or, 值爲數組

      db.stu.find({ $or:[{age: { $gte:18 } }, { gender: true } ], name:UZI }) 查詢年齡大於18或者性別爲男,而且姓名爲UZI的

  • 範圍運算查詢
    • 使⽤$in, $nin 判斷數據是否在某個數組內

 

      db.stu.find({ age : { $in: [10,20,30] } })   查詢年齡爲10,20,30的結果

  •  正則表達式查詢
    • 使⽤//或$regex編寫正則表達式

       db.stu.find( {name: /^andy/ } )  查詢姓名以andy開始的

       db.stu.find( { name: {$regex: '768$' } } )  查詢姓名以768結尾的

  • skip 和 limit
    • limit( )   ⽤於讀取指定數量的⽂檔
    • skip( )   ⽤於跳過指定數量的⽂檔

      db.stu.find().skip(10)  跳過前十條查詢結果

      db.stu.find().limit(10)  查詢十條結果

    • limit()和skip()同時使用,先使用skip在使用limit

      db.stu.find().skip(10).limit(10)  和 db.stu.find().limit(10).skip(10)  查詢結果相同  先跳過前十條,在查詢十條

  • 投影
    • 在查詢到的返回結果中, 只選擇必要的字段,參數爲字段與值, 值爲1表示顯示, 值爲0不顯 特別注意: 對於_id列默認是顯示的, 若是不顯示須要明確設置爲0

      db.stu.find( { }, {name:1,age:1 })   查詢結果只顯示name和age字段

  • 排序
    • ⽅法sort(), ⽤於對 集進⾏排序,參數1爲升序排列 參數-1爲降序排列

      db.stu.find().sort({ gender:1, age:-1 })

  • 統計個數
    • ⽅法count()⽤於統計結果集中⽂檔條數

       db.stu.find().count()    統計結果的次數

       db.stu.count()        統計結果的次數

  • 去重
    • 方法distinct()用於對查詢結果去重

      db.stu.distinct("hometown", {age:{$gte:18} })  對年齡大於18的結果以hometown去重

 

關閉mango的正確姿式:

  use admin

  db.shutdownServer()

 

mongoDB的備份與恢復

  mongo備份語法:mongodump -h dbhost -d dbname -o dbdirectory

  • -h:服務器地址,也能夠指定端口號
  • -d:須要備份的數據庫名稱
  • -o:備份的數據存放位置,此目錄中存放着備份出來的數據

  實例:mongodump -h 192.168.196.128:27017 -d test1 -o ~/Desktop/test1bak

  

  mongo恢復語法:mongorestore -h dbhost -d dbname --dir dbdirectory

  • -h:服務器地址
  • -d:須要恢復的數據庫名稱
  • --dir:備份的數據的位置

  實例:mongorestore -h 92.168.196.128:27017 -d test2 --dir ~/Desktop/test1bak/test1

mongoDB的導入和導出

  導出語法: mongoexport -h dbhost -d dbname -c colname -o filename --type json/csv -f field

  • -h: 服務器地址
  • -d: 數據庫名
  • -c: 集合名
  • -o: 導出文件名
  • --type: 文件類型,默認json格式,可選數據類型json,csv
  • -f: 須要導出的字段,導出爲json格式的數據時能夠不指定導出哪些字段,默認所有,導出成csv文件是必須指定

  示例:mongoexport -h 192.168.196.128:27017 -d test2 -c col1 -o test1_col1 [--type csv -f name,age,number]

 

  導出語法: mongoimport -d dbname -c colname --file filename [--headerline --type json/csv -f field]

  • -h: 服務器地址
  • -d: 數據庫名
  • -c: 集合名
  • -o: 導出文件名
  • --type: 文件類型,默認json格式,可選數據類型json,csv
  • -f: 須要導出的字段,導出爲json格式的數據時能夠不指定導出哪些字段,默認所有,導出成csv文件是必須指定

  示例:mongoexport -h 192.168.196.128:27017 -d test2 -c col1 -o test1_col1 --type csv -f name,age,number

相關文章
相關標籤/搜索