mongodb 超出內存限制


mongodb 查詢數據默認占用最大內存為100M,如果查詢涉及到大量數據進行$group、$sort時會拋出類似以下的異常:

Received error in response from ins-mongodb-03:27018: { $err: \"Exceeded memory limit for $group, but didn't allow external sort. Pass allowDiskUse:true to opt in.\", code: 16945

秩序要在查詢時添加{allowDiskUse: true}可以將查詢結果保存到臨時文件進行排序分組,來查看結果。

例如:

db.visits.aggregate(
[
{"$match":{"_id":{"$gte":ObjectId("5ae73d800000000000000000"),"$lt":ObjectId("5b101c000000000000000000")}}},
{"$group":{"_id":"$sip","cid":{"$addToSet":"$cid"},"count":{"$sum":1}}},
{"$project":{"_id":"$_id","cid":"$cid","cidcount":{"$size":"$cid"},"count":"$count"}},
{"$sort":{cidcount:-1}}
],{allowDiskUse: true}
)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM