国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > MongoDB > 正文

如何用MongoDB完成循環(huán)隊(duì)列?

2024-09-07 00:22:36
字體:
供稿:網(wǎng)友
      如何用MongoDB實(shí)現(xiàn)循環(huán)隊(duì)列?這篇文章我們就一起來探討一下關(guān)于把MongoDB作為循環(huán)隊(duì)列的方法,對大家學(xué)習(xí)MongoDB有一定的借鑒價(jià)值,感興趣的朋友就繼續(xù)往下看吧。
 
       我們在使用MongoDB的時(shí)候,一個(gè)集合里面能放多少數(shù)據(jù),一般取決于硬盤大小,只要硬盤足夠大,那么我們可以無休止地往里面添加數(shù)據(jù)。然后,有些時(shí)候,我只想把MongoDB作為一個(gè)循環(huán)隊(duì)列來使用,期望它有這樣一個(gè)行為:
 
設(shè)定隊(duì)列的長度為10
插入第1條數(shù)據(jù),它被放在第1個(gè)位置
插入第2條數(shù)據(jù),它被放在第2個(gè)位置
...
插入第10條數(shù)據(jù),它被放在第10個(gè)位置
插入第11條數(shù)據(jù),它被放在第1個(gè)位置,覆蓋原來的內(nèi)容
插入第12條數(shù)據(jù),它被放在第2個(gè)位置,覆蓋原來的內(nèi)容
...
 
import pymongo
 
conn = pymongo.MongoClient()
db = conn.test_capped
 
db.create_collection('info', capped=True, size=1024 * 1024 * 10, max=5)
 
 
       其中,index為0的這一條是最先插入的。接下來,我再插入一條數(shù)據(jù):
 
data = {'index': 100, 'name': 'xxx'}
col.insert_one(data)
 
       可以看到,index為1的數(shù)據(jù)也被覆蓋了。這樣我們就實(shí)現(xiàn)了一個(gè)循環(huán)隊(duì)列。MongoDB對capped collection有特別的優(yōu)化,所以它的讀寫速度比普通的集合快。
 
       但是capped collection也有一些缺點(diǎn),在MongoDB的官方文檔中提到:
 
If an update or a replacement operation changes the document size, the operation will fail.
 
You cannot delete documents from a capped collection. To remove all documents from a collection, use the drop() method to drop the collection and recreate the capped collection.
 
       意思就是說,capped collection里面的每一條記錄,可以更新,但是更新不能改變記錄的大小,否則更新就會失敗。不能單獨(dú)刪除capped collection中任何一條記錄,只能整體刪除整個(gè)集合然后重建。



(編輯:武林網(wǎng))

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 呼和浩特市| 桓仁| 仪征市| 新竹市| 郧西县| 江门市| 武定县| 渑池县| 墨竹工卡县| 图木舒克市| 九龙城区| 宣武区| 奈曼旗| 韩城市| 吉安县| 南陵县| 东乌珠穆沁旗| 长汀县| 冷水江市| 富平县| 巩义市| 乐亭县| 宜宾市| 滨海县| 正蓝旗| 晴隆县| 罗山县| 玉龙| 孟州市| 香港 | 永胜县| 紫阳县| 航空| 五莲县| 兰州市| 绥芬河市| 江都市| 武鸣县| 平南县| 岳普湖县| 商南县|