mongoDB操作

bug--maker發表於2018-07-07
  • MongoDB基本操作
  • 建立資料庫:use 資料庫名: 如果資料庫不存在,就建立,否則切換到資料庫,對於剛剛建立的資料庫,可能不在列表中進行顯示,如果需要顯示,需要插入一些資料;
  • 檢視資料庫:
show dbs

這裡寫圖片描述
* 檢視當前正在使用的資料庫: dbs或者db.getName
* 斷開連線:exit
* 檢視命令幫助:help
* 刪除資料庫: db.dropDatabase()前提是使用當前資料庫
* 集合操作:
* 檢視當前資料庫下有哪些資料庫集合
* show collections
這裡寫圖片描述
* 建立集合

語法: db.createCollection("set name")
     db.集合名.insert(document)
  • 前面的建立一個空的集合,後者表示的是建立一個空的集合並且新增文件
  • 例如:
 db.student.insert({name:"tom", age:18, gender:1, address:"lala", isDelete:0})
  • 前面的建立一個空的集合,後者表示的是建立一個空的集合並且新增文件
  • 刪除當前資料庫中的集合
db.集合名.drop()
  • 文件操作:
  • 插入文件:
db.集合名.insert(文件)
db.student.insert([{name:"to", age:18, gender:1, address:"lala", isDelete:0},{ame:"too", age:18, gender:1, address:"lala", isDelete:0}])
  • 使用save方法插入文件
db.集合名.save(文件)
如果不指定_id欄位,save方法類似於insert()方法,如果指定_id欄位就會
更新_id欄位的資料
db.student.insert({name:"tom", age:18, gender:1,address:"lala", isDelete:0})
  • 文件更新:
  • a. update()方法用於更新已經存在的文件;
a. update()方法用於更新已經存在的文件;
db.集合名.udates(
            query,
            update,
            {
                upset:<boolean>,
                multi:<boolean>,
                writeConcern:<document>
            }
        )
  • query:update的查詢條件,類似於sql裡面的update語句內where後面的內容,
    *update:update的物件和後面的一些更新的操作($set,$inc)等,$set直接更新,$inc在原有的基礎上累加後更新;
  • upset:可選,如果不存在update的記錄,是否當做新資料插入,True為插入,False表示不插入;預設False;
  • multi:可選,只更新找到的第一條記錄,預設為False,如果這個引數為True,就更新找到的所有資料;
  • WriteConncern:表示丟擲異常的級別
  • 例如:
> db.student.update({name:"tom"},{$set:{age:25}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified":1 })

> db.student.update({name:"tom"},{$inc:{age:25}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified":1 })

> db.student.update({name:"tom"},{$set:{age:25}},{multi:true})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
  • b. save(): 是通過傳入的文件替換已經存在的文件;
db.集合名.save(
            document,
            {
                writeConcern:<document>
            }

            ) document:表示文件物件
                    writeConcern:可選,表示丟擲異常的級別
* `document:`表示文件物件
* `writeConcern`:可選,表示丟擲異常的級別;

* 文件刪除:
* 在執行remove()函式前,限制性find()命令來判斷執行的條件是否存在是一個良好的習慣

db.集合名.remove(
            query,
            {
                justOne:<boolean>
                writeConcern:<document>
            }
            ) 
  • query:可選,表示刪除文件的條件
  • justOne:可選,如果為True或者1,則只刪除一個文件;
  • writeConcern:可選,表示丟擲異常的級別;
db.student.remove({name:"tom"})
  • 文件查詢
    1. find()方法:表示查詢集合下所有的文件(資料)
db.student.find()

這裡寫圖片描述
* 2. find()查詢指定列

語法:db.集合名.find(
    query,
    {
        <key>:1,
        <key>:1
    }
)
  • query表示查詢條件;key表示要顯示的欄位,1表示的是顯示;如果查詢條件為空,表示所有的都進行查詢;
  • 檢視所有的名字和年齡:
    這裡寫圖片描述
  • pretty()方法通過格式化的方式來顯示文件,例如:
    這裡寫圖片描述
  • findOne()用於查詢匹配結果的第一條資料
    這裡寫圖片描述
  • 查詢條件操作符號
  • 作用:條件操作符用於比較兩個表示式病從MongoDB集合中獲取資料
    • $gt:表示大於:db.集合名.find({key}:{$gt:<value>}})
      這裡寫圖片描述
    • $gte:表示大於等於
      這裡寫圖片描述
    • $lt:表示小於
      這裡寫圖片描述
    • $lte:表示小於等於
      這裡寫圖片描述
    • $gte 和 $lte聯合使用
      這裡寫圖片描述
    • :表示等於
      這裡寫圖片描述
    • _id進行查詢用於查詢某個結果集的資料條數
      這裡寫圖片描述
      這裡寫圖片描述
    • 查詢某個欄位的值當中是否包含另一個值;
      這裡寫圖片描述
    • 查詢某個欄位的值是否以另一個值開頭;
      這裡寫圖片描述
  • 條件查詢的邏輯關係 and or
    • AND條件:
      這裡寫圖片描述
    • OR條件:
      這裡寫圖片描述
    • AND 和 OR聯合使用:
db.集合名.find(
    {
        條件1,
        條件2,
        $or:[{條件3},{條件4}]
    }
)
  • limit()表示讀取指令數量的資料記錄
    這裡寫圖片描述
  • skip():表示跳過的一定數量的資料
    這裡寫圖片描述
  • 排序:
db.集合名.find().sort({<key>:1|-1}) //表示進行生序和將序排列

這裡寫圖片描述

相關文章