db.a.drop();
|
for(i=0;i<60000;i++) { db.a.insert({x:i, y:"asdfasdfasdfasdfasdfasdfasdfasdfasdf"}); }
|
db.adminCommand('fsync'); // force checkpoint
|
var collectionSize = db.a.stats().storageSize;
|
var indexSize = db.a.stats().indexSizes._id_;
|
print("table size: " + collectionSize);
|
print("index size: " + indexSize);
|
|
print("Remove all docs...");
|
db.a.remove({});
|
db.adminCommand('fsync'); // force checkpoint
|
print("table size: " + db.a.stats().storageSize);
|
print("index size: " + db.a.stats().indexSizes._id_);
|
|
print("Run compact...");
|
db.a.runCommand('compact');
|
print("table size: " + db.a.stats().storageSize);
|
print("index size: " + db.a.stats().indexSizes._id_);
|
db.adminCommand('fsync'); // force checkpoint
|
|
assert.gt(collectionSize, db.a.stats().storageSize, "collection size should be smaller after compact");
|
assert.gt(indexSize, db.a.stats().indexSizes._id_, "index size should be smaller after compact");
|