Вы можете использовать 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") }
агрегация
> db.abc.aggregate([
... {$match : {userid : '789736363828292', date : {$gt : new Date("2018-01-01")}, date : {$lt : new Date("2018-01-31")}}},
... {$out : "temp"}
... ])
размер в байтах
> db.temp.stats().size
320
размер в МБ
> db.temp.stats().size/1024/1024
0.00030517578125
>
падение температуры коллекции
> db.temp.drop()
true
>
$collStats
с storageStats
> var d = db.temp.aggregate({$collStats:{storageStats: {}}}).pretty()
> d.forEach(d => print(d.storageStats.size/1024/1024))
0.00030517578125
>
person
Saravana
schedule
25.02.2018