欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

使用MongoDB快速分頁

使用MongoDB快速分頁

我們提供的服務(wù)有:網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、薩爾圖ssl等。為1000+企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的薩爾圖網(wǎng)站制作公司

 

英文原文:

http://blog.mongodirector.com/fast-paging-with-mongodb/

 

通過你的數(shù)據(jù)分頁是使用MongoDB最常用操作之一。典型的案例是需要在你的UI的表格中顯示結(jié)果。如果你正在批處理數(shù)據(jù),分頁策略正確是很重要的,以致你的數(shù)據(jù)處理可擴(kuò)展。

 

讓我們通過一個(gè)示例來看看在MongoDB中通過數(shù)據(jù)分頁的不同方法。在這個(gè)示例中,我們有一個(gè)用戶數(shù)據(jù)庫CRM,我們需要分頁并一次顯示10個(gè)用戶。因此我們的分頁大小是10.這是我們的用戶文檔結(jié)構(gòu):

{
_id,
name,
company,
state
}

 

方法1:使用skip()和limit()

 

MongoDB本地支持使用skip()和limit()命令的分頁操作。skip(n)命令告訴MongoDB跳過n條結(jié)果,limit(n)命令告訴MongoDB限制結(jié)果長度為“n”個(gè)結(jié)果。典型地你會(huì)通過游標(biāo)使用skip()和limit()命令 – 但是為了描述這個(gè)案例我們提供了控制臺(tái)命令來完成相同的結(jié)果。因?yàn)榇a的簡潔性,也排除了檢查代碼的限制。

//Page 1
db.users.find().limit (10)
//Page 2
db.users.find().skip(10).limit(10)
//Page 3
db.users.find().skip(20).limit(10)
........

你明白了。通常獲取第n頁的代碼像這樣:

db.users.find().skip(pagesize*(n-1)).limit(pagesize)

然而隨著數(shù)據(jù)大小的增長,該方法有嚴(yán)重的性能問題。原因是每次查詢執(zhí)行時(shí),完整的結(jié)果集被構(gòu)建,然后實(shí)例必須從集合的開始定位到特定的偏移位置。因?yàn)槟愕钠圃黾?,這個(gè)過程變得越來越慢。這個(gè)過程也不能有效利用索引。因此典型地“skip()”和“l(fā)imit()”方法對于小的數(shù)據(jù)集時(shí)是有效的。如果你使用大數(shù)據(jù)集,你需要考慮其他方法。

 

方法2:使用find()和limit()

 

之前的方法擴(kuò)展得不是很好的原因是skip()命令。因此這部分的目標(biāo)是不使用“skip()”命令執(zhí)行分頁。我們使用時(shí)間戳或文檔中的id以自然順序存儲(chǔ)數(shù)據(jù)。在這個(gè)示例中,我們使用存儲(chǔ)在每個(gè)文檔中的“_id”?!癬id”是一個(gè)MongoDB的ObjectID結(jié)構(gòu),是一個(gè)12字節(jié)的結(jié)構(gòu),包含時(shí)間戳、機(jī)器、進(jìn)程ID、計(jì)數(shù)器等。整體想法如下:

1. 獲取當(dāng)前頁最后文檔的_id

2. 獲取大于該“_id”的下一頁的文檔

//Page 1
db.users.find().limit(pageSize);
//Find the id of the last document in this page
last_id = ...
//Page 2
users = db.users.find({'_id'> last_id}). limit(10);
//Update the last id with the id of the last document in this page
last_id = ...

該方法保持了存在于“_id”列中的固有順序。也因?yàn)椤癬id”列默認(rèn)被索引,查找性能非常好。如果你正使用的列沒有被索引,你的性能將會(huì)變差 -- 因此確保該列有索引是很重要的。

如果你也想為你的分頁以特定順序排列數(shù)據(jù),你可以用以上技術(shù)使用sort()從句。確保排序過程覆蓋索引獲得最佳性能非常重要。你可以使用.explain后綴到你的查詢?nèi)Q定。

users = db.users.find({'_id'> last_id}). sort(..).limit(10);
//Update the last id with the id of the last document in this page
last_id = ...

一如既往如果你有任何問題或者評(píng)論請隨時(shí)聯(lián)系我們support@mongodirector.com

網(wǎng)頁名稱:使用MongoDB快速分頁
網(wǎng)站網(wǎng)址:http://aaarwkj.com/article44/peiphe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、關(guān)鍵詞優(yōu)化、App開發(fā)、虛擬主機(jī)、電子商務(wù)、域名注冊

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
精品国产一区二区三区精品日韩| 精品一区二区三区女同| 国产精品欧美一区二区视频 | 欧美日韩亚洲精品综合网| 免费欧美一级黄片播放| 国产av剧情同事肉体秘密| 午夜91激情福利视频| 黄色国产欧美国产亚洲| 狠狠躁夜夜躁人人爽蜜桃| 亚洲国产日韩在线精品| 国产av爆操黑丝美女| 亚洲熟女乱妇爽到高潮| 国产国语久久91老女人| 日本精品动漫一区二区三区| 国产精品一二三在线看| 亚洲a∨乱码一区二区三区蜜臀| 免费在线观看一区二区三区视频| 亚洲黄色av网址在线观看| 久久精品人妻少妇一区二区| 尤物视频最新在线观看| 色综合一区二区日本韩国亚洲| 亚洲婷婷综合精品五月天| 色呦呦视频在线免费看| 97国产一区二区精品久久呦| 欧美一区二区黑人巨大| 国产麻豆剧传媒精品av| 日韩精品欧美精品一区二区| 日韩夫妻性生活免费视频| 国产精品亚洲一区二区在| 午夜视频在线观看免费版| 亚洲熟妇丰满多毛的大昊| 91久久精品人妻一区二区| 亚洲一区二区实拍偷拍视频| 国内精品久久久久久2021| 国产中文字幕精品在线| 久久中文字幕日韩精品| 好看的中文字幕人妻少妇| 人妻日韩精品综合一二三四| 亚洲国产精品视频中文字幕| 久久精品国产亚洲av麻| 日本欧美激情在线观看|