1

我正在使用MongoDB版本2.6。Mongodb查詢掛起系統

我有大約300萬數據在裏面。 當我發射下面這個查詢時,它掛着我的整個Java應用程序。

(我使用Mongodb connector檢索從那裏數據。)

db.collection_name.find{ 
    "client_id.event.currentDate": { 
     $gte: "2016-12-18", 
     $lte: "2017-01-17" 
    }, 
    "client_id.event.name": "SEARCH HOTELS SUCCESS", 
    _id: { 
     $lt: ObjectId('5856428ce4b0f530cc74c090') 
    } 
} 

什麼是檢索這種類型的大數據的最佳方式?

編輯 1:

我們有一個索引在我的收藏

{"client_id.event.name" : 1 ,"_id" :1 ,"client_id.event.currentDate" :1} 

編輯2:從數據庫

樣品文件:

{ 
     "_id" : ObjectId("57a316a60cf26576defb7837"), 
     "client_id" : { 
       "clientIp" : "50.23.117.45", 
       "event" : { 
         "installationId" : "us2zv39vti5v", 
         "action" : "END", 
         "client_us_lastCommunicatedAt" : "2016-08-01T10:23:38.502Z", 
         "duration" : 60, 
         "client_us_userUpdatedOn" : null, 
         "name" : "APPSESSION", 
         "appId" : 3, 
         "userName" : "us2zv39vti5v", 
         "currentDate" : "2016-08-01T10:24:38.502Z", 
         "superProperties" : { 
           "client_us_installAt" : "2016-08-01T10:23:38.502Z", 
           "client_us_cookieEnabled" : true, 
           "client_us_referrer" : "Self", 
           "client_us_screen_width" : 768, 
           "client_us_counter" : 1, 
           "client_us_screen_height" : 1360, 
           "client_us_brand" : "Google", 
           "client_us_browser_version" : "23.32.12.20", 
           "client_us_screen_dpi" : 96, 
           "client_us_os" : "Windows", 
           "client_us_screen_colourDepth" : 24, 
           "client_us_os_version" : "10", 
           "client_us_flashVersion" : "no check", 
           "client_us_lastCommunicatedAt" : "2016-08-01T10:23:38.502Z", 
           "browser" : "Chrome", 
           "client_us_screen_pixelDepth" : 0, 
           "client_us_referring_domain" : "Self", 
           "client_us_css_pixel" : 1, 
           "client_us_mobile" : false 
         }, 
         "userProperties" : { 
           "duration" : 60, 
           "Country" : "IN" 
         }, 
         "installProperties" : { 
           "email" : "[email protected]" 
         } 
       } 
     } 
} 
+0

不應該是引號中的嵌入字段名稱,如''client_id.event.currentDate''?編輯 – chridam

+0

,請再看看。 我錯過了這裏的雙引號,但在真正的查詢中它有。 –

+0

你需要調查什麼是掛。通常,它是在MongoDB實例上運行的查詢執行,而不是從MongoDB加載的數據。使用流式傳輸可以更好地處理大型數據集。 – mp911de

回答

0

您有3百萬個數據,並且每個數據都至少有4個日期字段。 現在,當spring-mongo-data從mongo請求所有這些數據時,它必須將日期的字符串值(這是json字符串日期格式= Java字符串類型)的字符串值轉換爲12百萬個日期的java Date對象。所以這將需要一段時間。