조치로 항목을 기록한 시스템이 있습니다. 120M 이상이 있으며 id_entry로 집계하여 그룹화하려고합니다.MongoDB 120M 문서의 집합
entry
{
id_entry: ObjectId(...),
created_at: Date(...),
action: {object},
}
내가 id_entry로하고 작업을 그룹화 완료 될 때까지 3 시간 이상 소요 집계를 수행하려고 :
db.entry.aggregate([
{ '$match': {'created_at': { $gte:ISODate("2016-02-02"), $lt:ISODate("2016-02-03")}}},
{ '$group': {
'_id' :{'id_entry': '$id_entry'},
actions: {
$push: '$action'
}
}}])
을하지만 일의 범위는 거기 구조는 다음과 같다 약 4 백만 건의 문서. (id_entry 및 created_at에는 색인이 있습니다.)
총계에서 내가 뭘 잘못하고 있니? 3M 미만의 문서를 id_entry로 그룹화하려면 어떻게해야합니까? 감사합니다.
'created_at'에 대한 색인이 있습니까? 'db.entry.find ({'created_at ': {$ gte : ISDate ("2016-02-02"), $ lt : ISODate ("2016-02-03")}}) ? – DmitryZyr
안녕하세요 @ DmitryZyr, 답변 해 주셔서 감사합니다. 이 쿼리는 0.057 초가 걸리고 2.703.103 개의 문서를 검색합니다. 큰 문제는 2,700 만 문서를 그룹화하는 것입니다 ... – Amarant