<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          四十六、MongoDB數(shù)據(jù)庫學習

          共 2409字,需瀏覽 5分鐘

           ·

          2020-11-30 13:29


          「@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)非常松散,是類似jsonbson格式,因此可以存儲比較復(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(, , {multi:})

          • 修改一條數(shù)據(jù):db.student.update({sex:'男'}, {age:20})

          把表中的男的age改為20

          • 指定屬性修改:{ $set: {age:20} }

          db.student.update({name:'毛利'}, {$set: {age:666, sex: '不告訴你'}} )

          把毛利的age改為666sex改為不告訴你

          • 更新集合中所有滿足條件的文檔:{ multi: true }
          db.student.update({sex:'男'},?{$set:{sex:'女'}},?{?multi:true}?)

          把所有按的改為女的

          刪除文檔(數(shù)據(jù))

          db.集合名稱.remove(, {justOne:})

          • 刪除集合中所有的文檔: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

          [1]

          傳送門~: https://github.com/MaoliRUNsen/runsenlearnpy100


          更多的文章

          點擊下面小程序



          - END -


          瀏覽 32
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  97色网站在线观看免费视频 | 久久爱综合网 | 日本乱轮视频 | 国产乱码一区二区三区的区别 | 亚洲日韩免费一级无码毛片 |