好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁(yè) > 知識(shí)庫(kù) > PyMongo 查詢(xún)數(shù)據(jù)的實(shí)現(xiàn)

PyMongo 查詢(xún)數(shù)據(jù)的實(shí)現(xiàn)

熱門(mén)標(biāo)簽:上海正規(guī)的外呼系統(tǒng)最新報(bào)價(jià) 企業(yè)彩鈴地圖標(biāo)注 電銷(xiāo)機(jī)器人錄音要學(xué)習(xí)什么 外賣(mài)地址有什么地圖標(biāo)注 長(zhǎng)春極信防封電銷(xiāo)卡批發(fā) 煙臺(tái)電話(huà)外呼營(yíng)銷(xiāo)系統(tǒng) 銀川電話(huà)機(jī)器人電話(huà) 如何地圖標(biāo)注公司 預(yù)覽式外呼系統(tǒng)

查詢(xún)數(shù)據(jù)

往 mongodb存儲(chǔ)的所有數(shù)據(jù),都是為了需要讀取的時(shí)候能夠取出。
但讀取除了按某一列比如分?jǐn)?shù): 排序 讀取;還會(huì)出現(xiàn)我只看某一段時(shí)間、某個(gè)班的條件篩選;還會(huì)出現(xiàn)我想看每個(gè)班平均分 聚合 求平均....等等多樣操作
這些操作都可以通過(guò) find_one()、find() 完成:

ret2find = collect.find_one()
# {'_id': ObjectId('5ea780bf747e3e128470e485'), 'class_name': '高三(1)班', 'student_name': '張三', 'subject': '英語(yǔ)', 'score': 100, 'date': '20200301'}

ret2find = collect.find()
# pymongo.cursor.Cursor object at 0x0000024BBEBE15C8>

從上面的結(jié)果可以看出,find_one() 查詢(xún)得出單一字典;find()則是一個(gè)生成器對(duì)象能夠通過(guò) for val in ret2find: 遍歷取出

設(shè)置查詢(xún)條件

但能取出全部數(shù)據(jù)還不夠,查詢(xún)一般是會(huì)帶條件、甚至復(fù)雜的條件 —— 比如:查詢(xún)出 高三(1)班,張三 或 李四,成績(jī)大于90 的科目,該怎么做呢?

ret2find = collect.find({"class_name":"高三(1)班","score":{"$gt":90},"$or":[{"student_name":"張三"},{"student_name":"李四"}]})

for val in ret2find:
    print(val)

上面有兩個(gè)要點(diǎn):

{"class_name":"高三(1)班","score":{"$gt":90}}

這一段 寫(xiě)法 表示 “高三(1)班 且 分?jǐn)?shù) > 90”;
而 $gt 比較操作符,表 大于意思,除 $gt 操作符以外還有:

符號(hào) 含義
$lt 小于
$lte 小于等于
$gt 大于
$gte 大于等于
$ne 不等于
$in 在范圍內(nèi)
$nin 不在范圍內(nèi)

{"$or":[{"student_name":"張三"},{"student_name":"李四"}]}

這一段 寫(xiě)法 表示 “學(xué)生名稱(chēng)為 張三 或 李四”
而其中的 $or 邏輯操作符,用它來(lái)表示條件之間的關(guān)系。除了 $or 以外的邏輯操作符還有:

符號(hào) 含義
$and 按條件取 交集
$not 單個(gè)條件的 相反集合
$nor 多個(gè)條件的 相反集合
$or 多個(gè)條件的 并集

更多查詢(xún)操作

除了上述常規(guī)操作外,具體使用場(chǎng)景中我們還會(huì)用到:

符號(hào) 含義 示例 示例含義
$regex 正則匹配 {"student_name":{"regex":".∗三"}} 學(xué)生名以 “三” 結(jié)尾
$expr 允許查詢(xún)中使用 聚合表達(dá)式 {"expr":{"gt":["spent","budget"]}} 查詢(xún) 花費(fèi) 大于 預(yù)算 的超支記錄
$exists 屬性是否存在 {"date":{"$exists": True}} date屬性存在
$exists 屬性是否存在 {"date":{"$exists": True}} date屬性存在
$type 類(lèi)型判斷 {"score":{"$type":"int"}} score的類(lèi)型為int
$mod 取模操作 {'score': {'$mod': [5, 0]}} 分?jǐn)?shù)取5、0的模

更多 查詢(xún)操作符 可以點(diǎn)擊 查看官方文檔

PS:pymongo最大查詢(xún)限制

在用pyhton遍歷mongo數(shù)據(jù)中時(shí)候,發(fā)限查詢(xún)到101行就會(huì)阻塞,如下

    lista_a = []
    for info in db.get_collection("dbs").find():
        lista_a.append(info)
        print("info nums=",len(info))

'''結(jié)果顯示'''
'''info nums=101'''

分析原因:mongodb的find()方法返回游標(biāo)cursor,可能有一個(gè)限制閾值101,參考文檔,如下

原文:

The MongoDB server returns the query results in batches. The amount of data in the batch will not exceed the maximum BSON document size. To override the default size of the batch, see batchSize() and limit().

New in version 3.4: Operations of type find(), aggregate(), listIndexes, and listCollections return a maximum of 16 megabytes per batch. batchSize() can enforce a smaller limit, but not a larger one.

find() and aggregate() operations have an initial batch size of 101 documents by default. Subsequent getMore operations issued against the resulting cursor have no default batch size, so they are limited only by the 16 megabyte message size.

For queries that include a sort operation without an index, the server must load all the documents in memory to perform the sort before returning any results.

翻譯:

MongoDB服務(wù)器批量返回查詢(xún)結(jié)果。批處理中的數(shù)據(jù)量不會(huì)超過(guò)最大BSON文檔大小。要覆蓋批處理的默認(rèn)大小,請(qǐng)參見(jiàn)batchSize()和limit()。
新版本3.4:類(lèi)型為find()、aggregate()、listIndexes和listCollections的操作每批最多返回16兆字節(jié)。batchSize()可以執(zhí)行較小的限制,但不能執(zhí)行較大的限制。
find()和aggregate()操作的初始批處理大小默認(rèn)為101個(gè)文檔。針對(duì)生成的游標(biāo)發(fā)出的后續(xù)getMore操作沒(méi)有默認(rèn)的批處理大小,因此它們僅受16mb消息大小的限制。 對(duì)于包含沒(méi)有索引的排序操作的查詢(xún),服務(wù)器必須在返回任何結(jié)果之前加載內(nèi)存中的所有文檔來(lái)執(zhí)行排序。

解決方案

    lista_a = []
    for info in db.get_collection("dbs").find().batch_size1(5000): #修改最大限制閾
        lista_a.append(info)
        print("info nums=",len(info))

但是這種方法是每次游標(biāo)返回5000條數(shù)據(jù),循環(huán)遍歷,如果單詞查找50000次應(yīng)該怎么寫(xiě)呢?如下

   lista_a = []
   cousor=db.get_collection("dbs").find().batch_size1(5000)
    for i in range(50000): #修改最大限制閾
        lista_a.append(next(cousor))

到此這篇關(guān)于PyMongo 查詢(xún)數(shù)據(jù)的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)PyMongo 查詢(xún)數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 詳解Pymongo常用查詢(xún)方法總結(jié)
  • pymongo中聚合查詢(xún)的使用方法

標(biāo)簽:西寧 湖北 潮州 盤(pán)錦 宜昌 佳木斯 上饒 珠海

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《PyMongo 查詢(xún)數(shù)據(jù)的實(shí)現(xiàn)》,本文關(guān)鍵詞  PyMongo,查詢(xún),數(shù)據(jù),的,實(shí)現(xiàn),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《PyMongo 查詢(xún)數(shù)據(jù)的實(shí)現(xiàn)》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于PyMongo 查詢(xún)數(shù)據(jù)的實(shí)現(xiàn)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 没带罩子让他玩儿了一天| 午夜在线精品偷拍| 野外做受又粗又硬又大| 久久66热人妻偷产精品日文版| 天天躁日日躁狠狠躁夜躁2022荷花| 噜噜噜在线观看| 德国一级毛片在线播放| 日日射夜夜操| 震车婬荡的秘书呻吟h| 美女脱内衣禁止18以下观看一| 高h肉特虐高h虐心| 人人澡人人澡人人妻人人四虎| 男女一边摸一边做爽爽的i视频| 五月伊人| 亚洲a人片在线观看网址| 亲情乱肉小说| chinesefreexxxx按摩| 亚洲欧美日韩精品suv| 看国产熟妇乱子伦| 成人午夜免费A片极品盛宴| 久久精品一区二区三区,| 国产精品无码一区二区在线观动漫| 欧美精品久久久久久干草影院小说| 日本xxxxxxxxx68| 调教师小说| 久久精品亚洲AV无码六区篠田| 成人做爰高潮片免费漫画视频| 韩剧她很漂亮在线观看免费| 激情小说视频在线观看| 狠狠色丁香婷婷久久综合蜜芽| 免费果冻传媒影片一二| 两个人的免费完整版视频| 在线观看黄网站免费继续| 99久久精品国产免费男女| 国产乱码精品一区二区三?| 52精品免费视频国产专区| 毛片直接看| 水川堇AⅤ无码流出| 麻豆61成人AV电影天堂| 国产???无线网站AAA| 成年人深夜福利|