簡體   English   中英

如何使用Node.js在MongoDB中獲取/計數數百萬條記錄

[英]How to fetch/count millions of records in mongodb with nodejs

我們在mongoDB中有一個包含數百萬條記錄的集合。 花費大量時間和時間來計算和創建這些記錄的分頁。 使用Node.js的最佳方法是什么 我想創建一個頁面,在其中可以查看具有分頁,計數,刪除和搜索記錄的記錄。 下面是在不同條件下查詢Mongo的代碼。

crowdResult.find({ "auditId":args.audit_id,"isDeleted":false})
            .skip(args.skip)
            .limit(args.limit)
            .exec(function (err, data) {
                if (err) 
                    return callback(err,null);
                console.log(data);
                return callback(null,data);
            })

如果目標是通過大型數據集而不超時,那么我將使用以下方法逐頁獲取頁面並在分頁結果集可用時立即對其進行處理: https : //gist.github.com/pulkitsinghal/2f3806670439fa137210fc26b134237f

在深入研究之前,請集中注意以下幾行,以快速了解代碼的作用:

  1. getPage()處理工作,您可以設置pageSize並根據自己的喜好進行queryhttps : getPage()
  2. 方法簽名: https : //gist.github.com/pulkitsinghal/2f3806670439fa137210fc26b134237f#file-sample-js-L29
  3. 盡快處理pagedResultshttps : pagedResults
  4. 移至下一頁: https : //gist.github.com/pulkitsinghal/2f3806670439fa137210fc26b134237f#file-sample-js-L53
  5. 如果沒有更多數據,該代碼將停止: https : //gist.github.com/pulkitsinghal/2f3806670439fa137210fc26b134237f#file-sample-js-L41
  6. 否則它將在處理數據的最后一頁時停止: https : //gist.github.com/pulkitsinghal/2f3806670439fa137210fc26b134237f#file-sample-js-L46

我希望這可以提供一些啟發,即使它不能完全滿足您的需求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM