Looking for persistence where we are sure data is saved and at same time have an easy to work with data base. right now we havea bunch of requirements (new project), version 1 out that does not save information to data base but does save to a a summary and detail html we did this to save time as the customer wanted reports and ability to run the app first

Understand that we can have Write Concern Acknowledgement in mongodb as Journaled - meaning it is safe to assume that data is persisted unless there is a power shutdown.

Going forward we want to save data to a data base for trend analysis

We do not need a fast in production system - a few more minutes write data or to get a report is fine as long as its accurate

What I understood from reading about mongodb and other no-sql data bases is that i can store java objects in them. with minimal dao code and i do not need to worry about db struture

Plan to use https://github.com/mongodb/morphia to store java objects

Need a solution that I can put to work in the next 18 days (sprint)

Please advice on how to save development time ? Will using mongodb + morphia vs Oracle- Spring-data save me time (Do not need to design tables) ?

网友答案:

Well the answer is "It Depends". Learning any new technology has an overhead, so if you're familiar with Oracle and Spring Data, you'll probably develop more quickly using those than if you pick MongoDB and Morphia if you've never used those technologies. With MongoDB, you're not only picking a product that requires a different way of interacting with it from your application (i.e. Morphia), you also have to learn about how Document databases are different to SQL databases, and work out how to install / run / debug with this different technology.

If you're familiar with Spring Data, you should probably use that with MongoDB since it does the same thing as Morphia (magically persists your Java Object into MongoDB) and will require less of a learning curve.

It is quick to get started with MongoDB, and it is pretty easy to develop against (full disclosure: I work for MongoDB), but it's not the technology that dictates how fast you get up and running, it's the experience of the developers who are creating the application. It will always be faster to develop in a technology stack you're familiar with.