Many projects could benefit from NoSQL, but need a simple query language.
NoSQL database systems have originated from very specialized applications (e.g. large scale web communities), but now their advantages over the relational model bring them into more general business uses.
Relational databases have benefitted from the standardized query language SQL. It has held on for 40 years, but SQL always had its weaknesses.
However SQL has proven very successful, because it created an ecosystem of supporting tools, which is important for business users.
NoSQL databases lack a common query language, that can provide the basis for a vendor independent tool ecosystem. I believe such a tool ecosystem is important to enable more widespread acceptance of this technology. It would allow to base tools like ETL or reporting on this common language.
The first question that arises is whether such a common query language is feasible at all, and if yes why not just SQL.
SQL can not be used as NoSQL databases have richer data models than relational databases, and because SQL depends on the join mechanism which NoSql (distributed ones in particular) try to avoid. Leaving SQL behind offers the prospect of significant cost reductions through both reduced developer effort and server power.
At the moment the new database systems nave no query language (completely depending on the highly specialized map/reduce approach), while others like (e.g. MongoDB or Versant) have rudimentary (and proprietary) query languages.
The feasability of such a language depends to a lesser degree on the storage model of the database system, but more on the structure of the data to be stored.
I.e. if we store typical business models in a NoSQL database we need a query language that is adapted to these models. Since most data these days is modeled using objects (E.g. in UML, XML or Java/C#) I envision a query language, that is capable of querying such models.
Languages like OQL, XQuery and Linq have sufficient expressive power, but they are more complex (unreadable) than necessary or lack certain functions.
If you are interested in such a language, follow this blog, so that you can see it emerge and that you can comment on its strengths and weaknesses.
Or do you have a candidate language, that could be used?