I de flesta situationer skulle jag rekommendera att välja en db för ett projekt, om projektet inte är stort. På riktigt stora projekt (eller företag i allmänhet), tror jag långsiktiga organisationer kommer att använda en kombination av
- RDBMS för mycket transaktionell OLTP
- NoSQL
- ett datawarehousing/BI-projekt
Men för saker av mer rimlig omfattning, välj bara den som gör kärnan i användningsfallet och använd den till allt.
IMO att lagra användardata i mongodb är bra -- du kan göra atomoperationer på enstaka BSON-dokument så operationer som "tilldela mig detta användarnamn atomiskt" är genomförbara. Med redo-loggar (--journal ) (v1.8+), replikering, slavfördröjd replikering är det möjligt att ha en ganska hög grad av datasäkerhet -- lika hög som andra db-produkter på papper. Huvudargumentet mot säkerhet skulle vara att produkten är ny och gammal mjukvara är alltid säkrare.
Om du behöver göra mycket komplexa ACID-transaktioner -- såsom redovisning -- använd en RDBMS.
Även om du behöver göra mycket rapportering, kan mysql vara bättre för tillfället, speciellt om datamängden får plats på en server. SQL GROUP BY-satsen är ganska kraftfull.