MongoDB
簡介
- MongoDB 是一個基於分佈式文件存儲的數據庫。由C++語言編寫。旨在爲WEB應用提供可擴展的高性能數據存儲解決方案。
- MongoDB 是一個介於關係數據庫和非關係數據庫之間的產品,是非關係數據庫當中功能最豐富,最像關係數據庫的。
安裝
- 安裝:sudo apt-get install mongodb
- 測試:
- 查看進程:ps -ef | greop mongo
- 客戶端連接:mongo
- 端口:27017
MySQL與MongoDB對比
- MySQL MongoDB
database db(數據庫)
table collection(集合)
一條數據 document(文檔)
db操作
- 查看所有數據庫:show dbs
- 查看當前數據庫:db 或者 db.getName()
- 創建或切換數據庫:use python
- 若使用的數據庫不存在則創建然後切換,存在則切換
- 新建的數據庫中沒有數據時,show dbs顯示不出來
- 刪除當前使用數據庫:db.dropDatabase()
- 退出:exit 或 quit()
- 查看幫助:help
collection操作
- 查看當前數據庫的所有集合:show collections
- 創建集合:
- 單純創建:db.createCollection(‘user’),創建一個空集合
- 按需創建:db.stu.insert({name:‘lufei’,age:22}),直接使用不存在的集合,並且插入數據
- 刪除集合:db.stu.drop()
document操作
- 增加文檔:
-
insert
插入一條數據
db.user.insert({name:‘hao’,age:23,height:175,isDelete:0})
插入多條數據
db.user.insert([{name:‘jiang’,age:25,height:165,isDelete:0},{name:‘yang’,age:26,height:178,isDelete:0}])
-
save
不指定_id字段,功能等價於insert
db.user.save({name:‘binge’,age:24,height:174,isDelete:0})
指定_id字段,相當於更新操作
db.user.save({_id:ObjectId(“5ad9600ad43bd178471b852f”),name:‘binge’,age:30,height:174,isDelete:0})
-
- 更新文檔
- save:保存文檔時,需要指定_id字段
- update:db.集合.update(query,update,{upsert:, multi:})
db.user.update({isDelete:0}, {$set:{isDelete:1}}, {multi:true})
query:表示查詢條件
update:表示更新設置,
$set:表示設置
$inc:表示增加
upsert:更新的查詢結果不存在,是否作爲新數據插入
multi:符合條件的數據是否全部更新,true表示全部更新,flase表示只更新一條
- 刪除文檔:
- remove:db.集合.remove(query, {justOne:})
db.user.remove({name:‘binge’}) # 默認刪除所有
db.user.remove({age:26},{justOne:true}) # 只刪除一條
- remove:db.集合.remove(query, {justOne:})
- 查詢文檔:db.user.find()
- 格式:db.集合.find(query,{key1:0,key2:0})
- 說明:
- query表示查詢條件,
- 第二個參數值爲1表示要顯示的字段,爲0表示不顯示的字段
- 選擇字段或排除字段只能選擇一種情況,要麼都選擇,要麼都排除
- pretty():格式化顯示文檔(以字典形式)
db.user.find().pretty() - findOne():查詢一條文檔
db.user.findOne({isDelete:0})
查詢條件操作符
- 大於:$gt
- 格式:db.集合.find({:{$gt:}})
- 示例:db.user.find({height:{$gt:166}})
- 大於等於:$gte
- 小於:$lt
- 小於等於:$lte
- 等於:不寫符號就是等於
- 多個條件:db.user.find({height:{lt:170}})
- 統計:count(),示例:db.user.find().count()
- 正則:db.集合.find({:/正則表達式/})
條件合併and/or
- and:表示並且
- 格式:db.集合.find({條件1,條件2})
- 示例:db.user.find({isDelete:0, height:{$gt:170}})
- or:表示或者
- 格式:db.集合.find({$or:[{條件1},{條件2}]})
- 示例:db.user.find({KaTeX parse error: Expected '}', got 'EOF' at end of input: or:[{height:{gt:175}},{height:{$lt:170}}]})
限制結果集
- 限制:limit()
- 示例:db.user.find().limit(1)
- 跳過:skip()
- 示例:db.user.find().skip(1).limit(1)
結果集排序:
- 格式:db.集合.find().sort({:1/-1})
- 說明:1表示升序,-1表示降序
- 示例:db.user.find().sort({height:-1})
python操作mongodb
- 安裝擴展庫:pip3 insatll pymongo