【MongoDB詳細使用教程】二、MongoDB基本操作


【MongoDB詳細使用教程】一、Mac安裝MongoDB
【MongoDB詳細使用教程】二、MongoDB基本操作
【MongoDB詳細使用教程】三、高級查詢
【MongoDB詳細使用教程】四、python操作MongoDB
【MongoDB詳細使用教程】五、MongoDB的數據庫管理

1、數據類型

MongoDB常見類型 說明
Object ID 文檔ID
String 字符串,最常用,必須是有效的UTF-8
Boolean 存儲一個布爾值,true或false
Integer 整數可以是32位或64位,這取決於服務器
Double 存儲浮點值
Arrays 數組(js)或列表(python),多個值存儲到一個鍵
Object 用於嵌入式的文檔,即一個值為一個文檔
Null 存儲Null值
Timestamp 時間戳
Date 存儲當前日期或時間的UNIX時間格式

2、數據庫操作

命令 操作
show dbs 顯示數據庫列表
db 顯示當前數據庫
use 數據庫名 切換或創建數據(有則切換,無則創建)
db.dropDatabase() 刪除當前所在數據庫(D大寫)

注:

  • 使用"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

3、集合操作

關系型數據庫中,每個庫是由多張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

4、數據操作

也叫文檔操作

4.1、增

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.2、查

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.3、改

4.3.1、修改整行

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

這里要注意,修改后結果就是整行的最終結果,並且只會修改一行,而不是所有匹配結果都修改。

可以通過多個字段查找

4.3.2、修改指定字段的值

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

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

4.4、刪

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

會刪除所有的匹配項


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM