四十六、MongoDB數(shù)據(jù)庫學習
「@Author:Runsen」
MongoDB

MongoDB是一個介于關(guān)系型數(shù)據(jù)庫和非關(guān)系型數(shù)據(jù)庫之間的產(chǎn)品,是非關(guān)系型數(shù)據(jù)庫當中功能最豐富,最像關(guān)系型數(shù)據(jù)庫的。
Ubuntu安裝MongoDB,直接sudo apt-get install mongodb
MongoDB是一個介于關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫之間的產(chǎn)品,是非關(guān)系數(shù)據(jù)庫當中功能最豐富,最像關(guān)系數(shù)據(jù)庫的。它支持的數(shù)據(jù)結(jié)構(gòu)非常松散,是類似json的bson格式,因此可以存儲比較復(fù)雜的數(shù)據(jù)類型。
Mongo最大的特點是它支持的查詢語言非常強大,其語法有點類似于面向?qū)ο蟮牟樵冋Z言,幾乎可以實現(xiàn)類似關(guān)系數(shù)據(jù)庫單表查詢的絕大部分功能,而且還支持對數(shù)據(jù)建立索引。
將數(shù)據(jù)存儲為一個文檔,文檔類似與Json格式,比如下面形式。
{
????name:"毛利",
????age:18,
????address:?{city:"東莞",?country:"china"}
}
MongoDB數(shù)據(jù)模型

「如何進入和退出mongo」

庫級操作語句
顯示所有庫: show dbs切換/創(chuàng)建數(shù)據(jù)庫: use 數(shù)據(jù)庫名稱查看所在庫: db刪除庫: db.dropDatabase()
集合操作語句
顯示當前數(shù)據(jù)庫的集合: show collections創(chuàng)建集合: db.createCollection(name)

刪除集合: db.集合名稱.drop()
文檔操作
添加文檔(數(shù)據(jù))
db.集合名稱.insert(document)
每一條數(shù)據(jù),就是一個document,就是一條json
例:db.student.insert({name:'毛利', age:18})
?注意點:
?
添加文檔時,如果不指定_id參數(shù) MongoDB會為文檔分配一個唯一的ObjectId
給定 _id例:db.student.insert({'_id':1, name:'毛利', age:18})
添加多條文檔
db.student.insert([
????{name:'毛利,?sex:'男',?age:18},
????{name:’毛利的爸爸',?sex:'男',?age:47},
????{name:’毛利的姐姐',?sex:'女',?age:23},
????{name:’毛利的媽媽‘,?sex:’女',?age:44},
])
查詢文檔(數(shù)據(jù))
db.集合名稱.find([conditions])
查看集合中全部數(shù)據(jù):db.student.find()
格式化顯示:db.student.find().pretty()
查看滿足條件的數(shù)據(jù):db.student.find({name:'毛利'})
條件查詢
and條件 ?
{$and:[{expression1}, {expression1}, ...] }or條件
{$or:[{expression1}, {expression1}, ...] }
db.student.find({$or:[{$and:[{sex:'女'}, {age:23}]},{$and:[{sex:'男'}, {age:{$gte:18}}]}]})

修改文檔(數(shù)據(jù))
db.集合名稱.update(
修改一條數(shù)據(jù): db.student.update({sex:'男'}, {age:20})
把表中的男的age改為20
指定屬性修改: { $set: {age:20} }
db.student.update({name:'毛利'}, {$set: {age:666, sex: '不告訴你'}} )
把毛利的age改為666,sex改為不告訴你
更新集合中所有滿足條件的文檔: { multi: true }
db.student.update({sex:'男'},?{$set:{sex:'女'}},?{?multi:true}?)
把所有按的改為女的
刪除文檔(數(shù)據(jù))
db.集合名稱.remove(
刪除集合中所有的文檔: db.student.remove({})刪除集合中滿足條件的所有文檔 db.student.remove({sex: '男'})只刪除集合中滿足條件的第一條文檔: { justOne: true }
db.student.remove({sex:'男'}, { justOne:true} )
在Python程序中操作MongoDB
在 Python 中操作 MongoDB ,需要使用 PyMongo 庫,執(zhí)行如下命令安裝:pip3 install pymongo。
連接時需要使用 PyMongo 庫里面的 MongoClient 模塊,有兩種方式可以創(chuàng)建連接,默認只需要傳入IP和端口號即可。如果數(shù)據(jù)庫存在賬號密碼,則需要指定連接的數(shù)據(jù)庫,MongoDB的外網(wǎng)IP必須開放,才能連接成功。
>>>?from?pymongo?import?MongoClient
>>>?client?=?MongoClient('mongodb://192.168.92.92:27017')?
>>>?db?=?client.school
>>>?for?student?in?db.students.find():
...?????print('姓名:',?student['name'])
?本文已收錄 GitHub,傳送門~[1] ,里面更有大廠面試完整考點,歡迎 Star。
?
Reference
傳送門~: https://github.com/MaoliRUNsen/runsenlearnpy100
更多的文章
點擊下面小程序
- END -

