首先問題很明確,當我對一個沒有建索引的字段做find,然后做sort的時候,可能觸發sort的size的32MB限制,而mongodb的sort操作是把數據拿到內存中再進行排序的,為了節約內存,默認給sort操作限制了最大內存為32Mb,當數據量越來越大直到超過32Mb的時候就自然拋出異常了!
解決方案有兩種(建議添加索引):
一、為該字段添加索引
db.CollectionName(表名).createIndexes({"title":1}) //title為字段名,1為正序,-1為倒序
二、修改默認配置,把sort時可以用的內存設置大點
db.adminCommand({setParameter:1, internalQueryExecMaxBlockingSortBytes:335544320}) //該命令是擴大sort限制為320MB