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]"
}
}
}
}
不應該是引號中的嵌入字段名稱,如''client_id.event.currentDate''?編輯 – chridam
,請再看看。 我錯過了這裏的雙引號,但在真正的查詢中它有。 –
你需要調查什麼是掛。通常,它是在MongoDB實例上運行的查詢執行,而不是從MongoDB加載的數據。使用流式傳輸可以更好地處理大型數據集。 – mp911de