2020-2-17-mongodb的使用

SylvesterZhang發表於2024-03-22

下載地址、安裝、啟動服務、檢視、建立資料庫及表、新增資料、刪除資料、更新資料、查詢資料、索引

下載地址

http://dl.mongodb.org/dl/win32/x86_64

下載名為mongodb-win32-x86_64-2012plus-v4.2-latest-signed.msi的檔案


安裝

點選下一步,跳過安裝mangodb_compass


啟動服務

mongod --dbpath pathdir

pathdir就是資料庫檔案建立的資料夾位置,執行命令後將會在資料夾裡生成資料庫檔案


檢視

//檢視所有資料庫
show dbs

//檢視所有表
use db01
show collections

建立資料庫及表

use db01
db.user.insert({'name':'張歡','age':21,'sex':'male','job':'coder'})

執行該程式碼後會新增資料庫db01,並且會在裡面新增一張表(集合)user,同時裡面會有一條資料,如果只想建立表執行db01.createCollection('user')


新增資料

db.user.insert({'name':'張歡','age':21,'sex':'male','job':'coder'})

表裡插入一條資料,注意在shell裡只允許單條插入


刪除資料

//資料庫刪除
use shop
db.dropDatabase()

//表刪除
db.user.drop()

//資料刪除
db.user.remove({'age':60},{justOne:true})//刪除一條滿足該條件的資料
db.user.remove({'age':60})//刪除滿足該條件的所有資料
db.user.remove({})//刪除表裡所有資料

更新資料

db.user.update({'name':'歡'},{$set:{'name':'坤坤'}})

注意:僅可對一條資料進行修改


表查詢

//檢視錶中所有資料
db.user.find()

//條件查詢
//1)不等式
db.user.find({'age':20})//年齡等於20
db.user.find({'age':{$gt:20}})//年齡大於20
db.user.find({'age':{$lt:30}})//年齡小於30
db.user.find({'age':{$gte:20}})//年齡大於等於20
db.user.find({'age':{$lte:20}})//年齡小於等於30
db.user.find({'age':{$gt:20,$lt:30}})//年齡大於20小於30
//2)包含
db.article.find({'title':/病毒/})
//3)以……開頭
db.article.find({'title':/^火神山/})

//查詢資料並顯示指定欄位資料(select age,name,sex from user)
db.user.find({},{'age':1,'name':1,'sex':1})//前一個物件是條件,後一個是要展示的欄位

//對查詢結果進行排序
//1)升序
db.user.find().sort({'age':1})
//2)降序
db.user.find().sort({'age':-1})

//當前條件下取前5條資料
db.user.find().limit(5)

//取跳過10條資料向後取10條資料
db.user.find().skip(10)

//條件or查詢
db.user.find({$or:[{'name':'歡'},{'age':21}]})

//條件and查詢
db.user.find({'name':'小毛','age':20})

//結果數量統計
db.user.find().count()

索引

1查詢哪些欄位設定了索引

db.user.getIndexes()

2設定索引

db.user.ensureIndex({'username':1})

3刪除索引

db.user.dropIndex({'username':1})

4複合索引

db.user.ensureIndex({'username':1,'age':-1})

1表示username鍵按升序儲存,-1表示age鍵按降序儲存

5刪除複合索引

db.user.dropIndex({'username':1,'age':-1})

6設定唯一索引

db.user.ensureIndex('user_id':1,'unique':true)

7查詢語句執行時間

db.user.find({'name':'zhang'}).explain('executionStats')