MongoDB
在使用MongoDB時,有一個原則:
使用不存在的對象即創建該對象例如: user.nickname = Dragonfire
他的數據存儲格式是:
[ {
ID:1,
name:jinwangba,
age:84,
hobby:[piaochang,taiguo,qiaoqun]
},
{
ID:2,
name:yinwangba,
age:73,
hobby:[keyiqusile]
},
{
ID:2,
name:yinwangba,
age:73,
hobby:[{
date:2018年10月17日,
name:"jinwangba"
},
]
}
]
關系型數據庫 MongoDB:
表 table Collections
字段 Colum Fields
行 Row Documents
MongoDB 之 豐富多彩的數據類型世界
首先我們要先了解一下MongoDB中有什么樣的數據類型:
Object ID :Documents 自生成的 _id
String: 字符串,必須是utf-8
Boolean:布爾值,true 或者false (這里有坑哦~在我們大Python中 True False 首字母大寫)
Integer:整數 (Int32 Int64 你們就知道有個Int就行了,一般我們用Int32)
Double:浮點數 (沒有float類型,所有小數都是Double)
Arrays:數組或者列表,多個值存儲到一個鍵 (list哦,大Python中的List哦)
Object:如果你學過Python的話,那么這個概念特別好理解,就是Python中的字典,這個數據類型就是字典
Null:空數據類型 , 一個特殊的概念,None Null
Timestamp:時間戳
Date:存儲當前日期或時間unix時間格式 (我們一般不用這個Date類型,時間戳可以秒殺一切時間類型)
先下載MongoDB數據庫,
然后把MongoDB的bin目錄添加進環境變量中。
打開終端cmd,輸入mongod,啟動數據庫,這時候會抱一個錯誤,是說 缺少,
這時候我們在c盤中創建這么一個文件夾。就不會報錯了。
重新輸入mongod,啟動數據庫。
打開另一個終端,進入數據庫。
我們都不愛在數據庫中敲代碼,所以我們用MongoDB的可視化工具。NoSQLBooster for MongoDB
先鏈接s12day117數據庫
插入:
在存入數據庫的時候有一個_di字段:這個字段是mongo給我們加的,全宇宙唯一。
刪除:
修改:
查
$修改器:
$set增加或者修改字段
$unset 刪除字段
$lt 小於
$gt 大於
$lte 小於等於
$gte 大於等於
$eq : 等於
$inc 在原有值基礎上增加
$push 在Arrays中添加一個元素
{$push: {hobby:"養生"}} 在Hobby中添加一個“養生”
$pull 在Arrays中刪除一個元素
{$pull: {hobby:"抽煙"}} 在Hobby中刪除一個“抽煙”
$pop 在Arrays中刪除最后一個元素或第一個元素
$ : 存儲 滿足前置條件列表元素的下標索引
相當於:
練習:
查詢$關鍵字:
$all #滿足所有元素的數據
db.user.find({myczdyy:{$all:[1,3]}})
$in #滿足其中一個元素的數據
db.user.find({myczdyy:{$in:[1,3]}})
$or #滿足其中一個字段的數據
db.user.find({$or:[{name:"yinwangba"},{age:{$gt:70}}]})
limit(x):
只查詢前x條數據
skip(x):
跳過多前x條數據
sort({ id:-1 }):
根據id字段進行倒序排列:-1 正序排列:1
利用上面這三個可以實現分頁的功能。
這些是在mongo數據庫中操作。我們在python中怎么用mongo數據庫
首先下載插件pymongo,python3 -m pip install pymongo
import pymongo # 建立連接,mongo的默認端口是27017 mongo_client = pymongo.MongoClient(host='127.0.0.1',port=27017) # 連接s12day117數據庫 mongo_db = mongo_client['s12day117'] # 查詢 res = mongo_db.user.find() print(res) for i in res: print(i) res = mongo_db.user.find_one({'name':'yang'}) print(res) #插入 res = mongo_db.chat.inset_one({}) print(res,res.inserted_id) res = mongo_db.chat.inset_many([{},{},{}]) print(res,res.inserted_ids) # 改 res = mongo_db.user.update_one({'name':'yang'},{'$set':{'age':888}}) res = mongo_db.user.update_many({"age":{"$gte":0}},{"$set":{"age":888}}) print(res,dir(res),res.modified_count) # 刪除 res = mongo_db.user.delete_one({"name":"xiaozhuer"}) res = mongo_db.user.delete_many({}) print(res,dir(res),res.deleted_count) res = mongo_db.user.find_one({"name":"yang"}) print(res) for index,item in enumerate(res.get('course')): if res.get('course')[index]['course_name'] == 'linux': res.get('course')[index]['course_name'] = 'django框架' res = mongo_db.user.update_one({'name':'yang'},{'$set':res})