我在MonoDB Collection中有800k文档,一个文档({userid:'789736363828292'})有50k文档/记录。我希望在一个月或30天的间隔内找到该特定文档({userid:'789736363828292'})使用的内存。
请帮我在monogo db console的日期范围内找到以MB为单位的内存大小。
感谢。
答案 0 :(得分:0)
您可以使用SyntaxError: Unexpected token else in C:\Users\Adetona\Dropbox\meme.africa\views\pages\index.ejs while compiling ejs
或管道else
与db.col.stats()
一起获取集合的大小
通过聚合,您可以过滤月份或日期范围的文档,将其写入新的临时集合,$collStats
您可以使用storageStats
获取大小,将其除以stats.size
在bytes
集合
1024*1024
聚合
MB
以字节为单位的大小
> db.temp.drop()
true
>
> db.abc.find()
{ "_id" : ObjectId("5a924393aa451c738766d20b"), "userid" : "789736363828292", "date" : ISODate("2018-01-01T00:00:00Z") }
{ "_id" : ObjectId("5a924393aa451c738766d20c"), "userid" : "789736363828292", "date" : ISODate("2018-01-02T00:00:00Z") }
{ "_id" : ObjectId("5a924393aa451c738766d20d"), "userid" : "789736363828292", "date" : ISODate("2018-01-03T00:00:00Z") }
{ "_id" : ObjectId("5a924393aa451c738766d20e"), "userid" : "789736363828292", "date" : ISODate("2018-01-04T00:00:00Z") }
{ "_id" : ObjectId("5a924393aa451c738766d20f"), "userid" : "789736363828292", "date" : ISODate("2018-01-05T00:00:00Z") }
大小以MB为单位
> db.abc.aggregate([
... {$match : {userid : '789736363828292', date : {$gt : new Date("2018-01-01")}, date : {$lt : new Date("2018-01-31")}}},
... {$out : "temp"}
... ])
drop temp collection
> db.temp.stats().size
320
带有> db.temp.stats().size/1024/1024
0.00030517578125
>
的 > db.temp.drop()
true
>
$collStats
答案 1 :(得分:0)
您可以使用查询找到所有此类文档的大小:
var size = 0
db.youCollection.find({userid : '789736363828292', date:{$lt:ISODate("2018-02-25T09:13:55.996Z"), $gt: ISODate("2018-01-25T09:13:55.996Z") }}).forEach(function(doc){ size = size + Object.bsonsize(doc) })
print(size)