flask基礎 MongoDB


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})

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM