Avoid one size fits all solutions. One size doesn't usually fit all situations that you might need to cater for. Think about the various needs of your application/use cases and design accordingly some things to consider, such as document storage, relational storage, graph storage, caching, data stream processing, image processing, high availability, high consistency, distributed nodes, latency, transaction support. This list is not exhaustive.
Take time to fully understand the life cycle of your tools of choice and data that you are charged with caring for. This includes tool upgrade time frames and assessing compatibility issues after upgrade. High incidences of upgrades for a toolchain might be a consideration for discounting it for production services as there may be stability or compatibility issues between versions.
Where practical, find the bleeding edge...