MongoDB 是一款開源、跨平臺、分佈式,具備大數據處理能力的文檔存儲數據庫。在 2007 年由 MongoDB 軟件公司開發完成,並實現所有代碼源發展。目 前,該文檔數據庫被國內外衆多知名網因所採納,用於提升數據訪問的處理速度 和大數據存儲問題。 sql
基本操做命令 :數據庫
show dbs : 顯示全部數據庫(空數據庫不會顯示)。分佈式
use dbname : 切換至 數據庫 dbname。大數據
db.stats() 顯示 數據庫狀態blog
db.dropdatabase() 刪除當前數據庫。索引
db. getCollectionNames () 查看當前數據庫下的全部集合的名稱ip
show roles 查看當前數據庫的用戶角色權限及用戶名/密碼信息開發
增刪改查:rem
插入:文檔
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() 效率更高,它會直接刪掉集合及索引。