最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python pymongo模塊用法示例

 更新時間:2018年03月31日 10:05:48   作者:開心果汁  
這篇文章主要介紹了Python pymongo模塊用法,結合實例形式分析了Python中pymongo模塊的安裝與簡單使用相關操作技巧,需要的朋友可以參考下

本文實例講述了Python pymongo模塊用法。分享給大家供大家參考,具體如下:

MongoDB優(yōu)點

MongoDB是一個為當代web應用而生的noSQL數(shù)據(jù)庫,它有如下優(yōu)點:

1、文檔型存儲。可以把關系型數(shù)據(jù)庫的表理解為一個電子表格,列表示字段,每行的記錄其實是按照列的字段順序排列的值得元組。而存儲在MongoDB中的文檔被存儲為鍵-值對的形式,值卻可以是任意類型且可以嵌套。之前在用關系型數(shù)據(jù)庫的時候,我們把產(chǎn)品信息打散到不同的表中,要通過關系表或者使用join拼接成復雜的SQL語句的方式才能獲得需要的數(shù)據(jù)。現(xiàn)在我們可以更多地把產(chǎn)品信息放在一起,也不需要提前預定產(chǎn)品信息的模式。多好。

2、使用高效的二進制BSON作為數(shù)據(jù)存儲,BSON是一個類JSON的格式,選擇BSON可以提供更快的遍歷速度,提供比JSON更多地內置數(shù)據(jù)類型。

3、自帶高可用及分區(qū)的解決方案。

4、基于文檔的富查詢語言。MongoDB支持動態(tài)查詢,支持非常多的查詢方式,并且可以對文檔中的屬性建立索引。

5、內置聚合工具。可以通過MapReduce等方式進行復雜的統(tǒng)計和并行計算。

6、MongoDB在3.0 之后增加了高性能,可伸縮,支持壓縮文檔級鎖的數(shù)據(jù)存儲引擎(WiredTiger),官方的性能測試顯示,使用新的存儲引擎后帶來4~7倍的性能提升哦。

安裝MongoDB的python 驅動:

pip install pymongo

下面是一些操作例子:

# coding=utf-8
import random
import pymongo
client = pymongo.MongoClient('mongodb://localhost:27017/')
client.drop_database('test') # 保證之前沒有數(shù)據(jù), 刪除名為test的數(shù)據(jù)庫
db = client.test # 使用test這個數(shù)據(jù)庫
coll = db.coll # 使用coll這個集合
# 插入單條
rs = coll.insert_one({'a': 1, 'b': 2})
object_id = rs.inserted_id
print rs.inserted_id # 打印插入的對象id
# 插入多條
rs = coll.insert_many([{'a': random.randint(1, 10), 'b': 10}
            for _ in range(10)])
print rs.inserted_ids # 打印插入的對象id列表
# 查詢單條(符合的第一條)
print coll.find_one({'a': 1, 'b': 2})
# 集合當前全部文檔數(shù)
print coll.count()
cursor = coll.find({'a': {'$lte': 1}}) # 查詢結果是一個游標
print cursor.count() # 符合查詢的文檔數(shù)
for r in cursor:
  print r, r['b'] # 打印符合查詢的文檔內容, 以及其中b鍵的值
# 注意, 這個循環(huán)只能進行一次. 如果想再獲得需要重新find或者使用list(cursor)把結果存起來
# 對查詢結果排序
print list(coll.find({'a': {'$lte': 1}}).sort([('b', -1)]))
# -1也可以表示為pymongo.DESCENDING
# 對查詢結果可以限制返回文檔數(shù), 控制跳過的結果數(shù)
print coll.find({'b': {'$gt': 1}}).limit(1).skip(1).next() # next相當于find_one
# 找到后更新, 下面例子第一個參數(shù)是過濾條件, 第二個參數(shù)是要更新的操作(設置b為3, a自增長1)
# upsert為True表示找不到會創(chuàng)建一個,也就是get_or_create
rs = coll.find_one_and_update({'a': 1, 'b': 2},
               {'$set': {'b': 3}, '$inc': {'a': 1}},
               upsert=False)
print rs # 返回更新前的文檔
# 同樣的還有find_one_and_replace和find_one_and_delete
print list(coll.find({'a': 2, 'b': 3})) # 上述文檔已經(jīng)被更新為這個文檔
coll.find_one_and_update({'a': 1, 'b': 2},
             {'$set': {'b': 3}, '$inc': {'a': 1}},
             upsert=True) # 雖然沒有符合{'a': 1, 'b': 2}的記錄,但是會新建一個
print coll.find({'a': 2, 'b': 3}).count() # 發(fā)現(xiàn)現(xiàn)在有2條文檔記錄了
# 刪除單個文檔
coll.delete_one({'a': 2, 'b': 3})
# 一次性刪除多個文檔
rs = coll.delete_many({'a': 2, 'b': 3})
# 如果沒有符合的條目也不會提示, 但是可以通過rs.deleted_count獲得刪除的數(shù)量
print rs.deleted_count

更多關于Python相關內容感興趣的讀者可查看本站專題:《Python常見數(shù)據(jù)庫操作技巧匯總》、《Python數(shù)學運算技巧總結》、《Python數(shù)據(jù)結構與算法教程》、《Python函數(shù)使用技巧總結》、《Python字符串操作技巧匯總》、《Python入門與進階經(jīng)典教程》及《Python文件與目錄操作技巧匯總

希望本文所述對大家Python程序設計有所幫助。

相關文章

最新評論

泗阳县| 明水县| 惠水县| 德化县| 兖州市| 墨脱县| 松溪县| 保德县| 青州市| 峡江县| 当阳市| 聊城市| 陵水| 胶州市| 常州市| 台南市| 托里县| 和田县| 东乡族自治县| 大足县| 自治县| 浙江省| 小金县| 突泉县| 沁阳市| 尼勒克县| 建阳市| 双桥区| 东宁县| 长治市| 三明市| 彝良县| 大兴区| 阿尔山市| 昭通市| 尼勒克县| 兴国县| 万源市| 万年县| 武宁县| 方正县|