【MongoDB詳細使用教程】1、Mac安裝MongoDB
【MongoDB詳細使用教程】2、MongoDB基本操做
【MongoDB詳細使用教程】3、高級查詢
【MongoDB詳細使用教程】4、python操做MongoDB
【MongoDB詳細使用教程】5、MongoDB的數據庫管理python
MongoDB常見類型 | 說明 |
---|---|
Object ID | 文檔ID |
String | 字符串,最經常使用,必須是有效的UTF-8 |
Boolean | 存儲一個布爾值,true或false |
Integer | 整數能夠是32位或64位,這取決於服務器 |
Double | 存儲浮點值 |
Arrays | 數組(js)或列表(python),多個值存儲到一個鍵 |
Object | 用於嵌入式的文檔,即一個值爲一個文檔 |
Null | 存儲Null值 |
Timestamp | 時間戳 |
Date | 存儲當前日期或時間的UNIX時間格式 |
命令 | 操做 |
---|---|
show dbs | 顯示數據庫列表 |
db | 顯示當前數據庫 |
use 數據庫名 | 切換或建立數據(有則切換,無則建立) |
db.dropDatabase() | 刪除當前所在數據庫(D大寫) |
注:sql
> use mymongo switched to db mymongo > db mymongo > show dbs # 建立後使用show dbs不會顯示剛建立的數據庫 admin 0.000GB config 0.000GB local 0.000GB > db mymongo > db.mytest.insert({"name":"chen"}) WriteResult({ "nInserted" : 1 }) > show dbs admin 0.000GB config 0.000GB local 0.000GB mymongo 0.000GB # 插入一條數據後,就能夠在show dbs中顯示出來了
> show dbs admin 0.000GB config 0.000GB local 0.000GB mymongo 0.000GB > db.dropDatabase() { "dropped" : "mymongo", "ok" : 1 } > show dbs admin 0.000GB config 0.000GB local 0.000GB
關係型數據庫中,每一個庫是由多張table組成,
而NoSQL中,每一個庫是由多個集合(collection)組成,至關於sql中的table,集合中以鍵值對(json、python.dict)的形式保存數據。數據庫
命令 | 操做 |
---|---|
db.createCollection(集合名, [參數]) | 建立集合(通常不用這種方式而是在插入數據時自動建立) |
show collections/show tables | 查看集合 |
db.集合名.drop() | 刪除集合 |
> db.createCollection("colletiontest") { "ok" : 1 } > show collections colletiontest mytest > db.colletiontest.drop() true > show collections mytest
也叫文檔操做json
db.集合名.insert({"鍵名1":值1, "鍵名2": 值2 ...})
> db.students.insert({"name":"chen","age":"18", "grade":"一年級"}) WriteResult({ "nInserted" : 1 }) > db.students.insert({"name":"wang","age":"19", "grade":"二年級"}) WriteResult({ "nInserted" : 1 }) > db.students.insert({"name":"xu","age":20, "grade":"三年級"}) WriteResult({ "nInserted" : 1 })
一條insert語句只能插入一行數據,insert後面不能跟多行數據。數組
db.集合名.findOne() # 查詢一行 db.集合名.find() # 查詢所有 db.集合名.find().pretty() # 格式化打印 db.集合名.find({查找條件}) # 按條件查找
> db.students.findOne() { "_id" : ObjectId("5db63d020f98841018f7695f"), "name" : "chen", "age" : "18", "grade" : "一年級" } > db.students.find() { "_id" : ObjectId("5db642b30f98841018f76965"), "name" : "chen", "age" : "18", "grade" : "一年級" } { "_id" : ObjectId("5db642bc0f98841018f76966"), "name" : "wang", "age" : "19", "grade" : "二年級" } { "_id" : ObjectId("5db653920f98841018f7696b"), "name" : "xu", "age" : 20, "grade" : "三年級" } > db.students.find().pretty() { "_id" : ObjectId("5db642b30f98841018f76965"), "name" : "chen", "age" : "18", "grade" : "一年級" } { "_id" : ObjectId("5db642bc0f98841018f76966"), "name" : "wang", "age" : "19", "grade" : "二年級" } { "_id" : ObjectId("5db653920f98841018f7696b"), "name" : "xu", "age" : 20, "grade" : "三年級" }
> db.students.find() { "_id" : ObjectId("5db642b30f98841018f76965"), "name" : "chen", "age" : "18", "grade" : "一年級" } { "_id" : ObjectId("5db642bc0f98841018f76966"), "name" : "wang", "age" : "19", "grade" : "二年級" } { "_id" : ObjectId("5db653920f98841018f7696b"), "name" : "xu", "age" : 20, "grade" : "三年級" } { "_id" : ObjectId("5db654660f98841018f7696c"), "name" : "ma", "age" : 20, "grade" : "二年級" } > db.students.find({"age":20}) { "_id" : ObjectId("5db653920f98841018f7696b"), "name" : "xu", "age" : 20, "grade" : "三年級" } { "_id" : ObjectId("5db654660f98841018f7696c"), "name" : "ma", "age" : 20, "grade" : "二年級" }
"_id"是mongoDB自動添加的主鍵.
十六進制,每兩個字符爲一個字節,共12個字節服務器
db.集合名.update({查詢條件}, {修改後結果})
這裏要注意,修改後結果就是整行的最終結果,而且只會修改一行,而不是全部匹配結果都修改。3d
能夠經過多個字段查找
code
db.students.update({查找條件}, {$set:{"要修改的字段名1":修改後的值, "要修改的字段名2": "值2"}})
同時修改了連個字段的值,但一樣只會修改一條記錄htm
db.集合名.remove({查詢條件}) db.集合名.remove({}) # 刪除所有數據
會刪除全部的匹配項