【MongoDB詳細使用教程】2、MongoDB基本操做

【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

  • 使用"show dbs"時,不顯示空的數據庫
> 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"不顯示,可是使用"db"命令的時候還會看到。
> 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

4.一、增

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後面不能跟多行數據。數組

4.二、查

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個字節服務器

  • 前4個字節爲當前時間戳
  • 接下來3個字節爲機器ID
  • 再接下來2個是MongoDB的進程ID
  • 最後是排序流水號

4.三、改

4.3.一、修改整行

db.集合名.update({查詢條件}, {修改後結果})

這裏要注意,修改後結果就是整行的最終結果,而且只會修改一行,而不是全部匹配結果都修改。3d

能夠經過多個字段查找
code

4.3.二、修改指定字段的值

db.students.update({查找條件}, {$set:{"要修改的字段名1":修改後的值, "要修改的字段名2": "值2"}})

同時修改了連個字段的值,但一樣只會修改一條記錄htm

4.四、刪

db.集合名.remove({查詢條件})  
db.集合名.remove({})    # 刪除所有數據

會刪除全部的匹配項

相關文章
相關標籤/搜索