MongoDB 是一款開源、跨平臺、分散式,具有大數據處理能力的文檔存儲資料庫。在 2007 年由 MongoDB 軟體公司開發完成,並實現全部代碼源發展。目 前,該文檔資料庫被國內外眾多知名網因所採納,用於提高數據訪問的處理速度 和大數據存儲問題。 基本操作命令 : show dbs : 顯示所有 ...
MongoDB 是一款開源、跨平臺、分散式,具有大數據處理能力的文檔存儲資料庫。在 2007 年由 MongoDB 軟體公司開發完成,並實現全部代碼源發展。目 前,該文檔資料庫被國內外眾多知名網因所採納,用於提高數據訪問的處理速度 和大數據存儲問題。
基本操作命令 :
show dbs : 顯示所有資料庫(空資料庫不會顯示)。
use dbname : 切換至 資料庫 dbname。
db.stats() 顯示 資料庫狀態
db.dropdatabase() 刪除當前資料庫。
db. getCollectionNames () 查看當前資料庫下的所有集合的名稱
show roles 查看當前資料庫的用戶角色許可權及用戶名/密碼信息
增刪改查:
插入:
db.student.insert({"name":"Jason","age":20}) student 為集合名稱,如果沒有該集合,會自動創建。
db.student.insert([{"name":"dalie","age":30},{"name":"sun","sex":"male"}]) 插入多條記錄 。 同一個集合中的文檔,key 不用保持一致。
document = {"name":"biao","age":12}
db.student.insert(document); 也可以用聲明變數的方式 將文檔插入集合中
db.student.insert([{"name":"wang","age":11},{"name":"goudan","age":1}],{ordered:true}) 順序插入 ordered為true時,如存在主鍵衝突的數據,會導致全部插入失敗,false時,除出錯記錄外,其他記錄正常插入。
查詢:
db.student.find() 列出該集合內所有文檔。
db.student.find({"name":"Jason"}) 括弧內 可以填寫 匹配條件 類似於 sql 中where
db.student.fingOne() db.student.findOne({"name":"Jason"}) 列出集合內符合條件的第一條文檔
db.student.find().pretty() 將結果 以優美的形式展示。
db.student.find({},{name:1,age:1,_id:0}).pretty() 可以設置要查詢的key ,1顯示,0不顯示。
db.student.find().limit(2) 返回前兩條文檔
db.student.find().skip(2) 跳過前兩條文檔,顯示 之後的所有文檔。
db.student.find().skip(2).limit(1) 顯示第三條文檔。
db.student.find({name:{$in:["Mike","Jason"]}}) $in 實現 範圍查詢。$in 用於不同文檔指定同一個 Key 進行或條件匹配, $or 可以指定多個 Key 或條件匹配。
db.student.find({$or:[{name:"Jason"},{age:12}]})
更新:
db.student.update({name:"Jason"},{$set:{age1:12}})
$set 更新要修改的欄位 $unset 刪除該欄位 $rename 更改欄位名 $inc 修改數值做加法運算。
db.collection.updateOne() 。與 update()唯一的 區別是命令語法里少了 一個 multi: <boolean>選項, 也就是 updateOne()只適用於符合條件的一條文檔的修改任務。
db.collection.updateMany() 。與 update()唯一的區別是命令語法里少了 一個 multi: <boolean>選項, 也就是 updateMany()只適用於符合條件的多條文檔的修改任務。
db.collection.replaceOne() 。與 update()的區別有兩處, 一個沒有 multi: <boolean> 選項;另外一個在第二個參數 Cupdate 的<update>)里不能有更新操作符。
刪除:
db.student.remove("name":"Jason") 刪除姓名為Jason的文檔。
db.student.remove({}) 刪除集合內所有文檔,但如果要刪除整個集合 db.student.drop() 效率更高,它會直接刪掉集合及索引。