How to keep database size low in MongoDB?
Because data is not normalised the storage requirements generally bigger.

Don't forget about compression. When you use gzip it will use more CPU power, but disk size is much smaller than snappy. It depends on your data.

Some MongoDB consultant made benchmarks about different compression algorithms, but this file not public. Maybe some MongoDB guy provide an improved answer ;)


No compression
Snappy (enabled by default) – very good compression, efficient use of
resources
zlib (similar to gzip) – excellent compression, but more resource
intensive


see the startup parameter storage.wiredTiger.collectionConfig.blockCompressor


  Default: snappy
  
  New in version 3.0.0.
  
  The default type of compression to use to compress collection data.
  You can override this on a per-collection basis when creating
  collections.
  
  Available compressors are:
  
  none snappy zlib storage.wiredTiger.collectionConfig.blockCompressor
  affects all collections created. If you change the value of
  storage.wiredTiger.collectionConfig.blockCompressor on an existing
  MongoDB deployment, all new collections will use the specified
  compressor. Existing collections will continue to use the compressor
  specified when they were created, or the default compressor at that
  time.