我正在開發一個asp.net Web應用程序,該應用程序應該爲用戶提供數千張JPEG圖像。我的專用服務器包含JPEG文件並承載一個用於存儲JPEG元數據的MongoDB。MongoDB C#驅動程序通過使用AJAX光標迭代地檢索5000個文檔
Sample object in a collection named **JPEG_123** (this collection has 1 million such documents and each document has _id indexed)
{
"_id" : "20121210185015000", //YYYYMMDDhhmmsslll
"Url" : "http:...",
"CameraId" : 123
}
我正在使用Web方法來查詢MongoDB。我查詢收集JPEG_123正則表達式的Utc字段(例如「^ 2012121018 * /)」以獲取單個小時的文檔。它返回大約5000個由MongoCursor指向的記錄,並且在MongoShell上它只顯示3-4毫秒的時間此數據。
問:我怎麼能在ASP.NET通過MongoCursor獲得這些文件反覆從MongoDB的最好的和快速的方法是什麼?有了這樣MongoCursor屬性的最佳使用極限,BATCHSIZE和NEXT的。
我正在嘗試做這樣的事情:
- 執行上述從ASP.NET 查找查詢有關MongoDB
- 只取前500頁的文件在網絡上開始並保持休息4500在RAM
- 取其餘4500個文檔在MongoCursor在9次後續的迭代(每次獲得500)
- 或任何其他可能性,以加快通過網絡發送這些數據
我的關注
-
的過程
當我從ASP.NET中查詢MongnoDB時,是否真的意味着MongoDB將所有5000條記錄加載到RAM,但不會將所有5000條記錄返回給ASP.NET?
發出上述查詢後,它立即返回MongoCursor指向的記錄總數。當我循環遍歷MongoCursor中的所有文檔時,大約需要20-30秒。這是否意味着,MongoDB在應用程序中使用它時會返回數據?