在过去的几年中,
NoSQL数据库(例如CouchDB,Cassandra和MongoDB)在不需要运行传统RDBMS的语义和开销的应用程序中得到了普及。 我不会进入选择NoSQL数据库的设计决策,因为其他人已经做得很好,但是我将结合我在MongoDB上的经验以及在Java中有效使用它的一些技巧。
最近,我有机会使用MongoDB (与humongoous一样),这是一个用C ++编写的面向文档的数据库。 它是存储结构可能不同的文档的理想选择,它使用类似于JSON的格式,这意味着它支持与JSON类似的数据类型和结构。 它提供了丰富而简单的查询语言,仍然使我们能够为快速检索的关键字段建立索引。 文档存储在集合中,这有效地限制了查询的范围,但是对于可以存储在集合中的异构数据的类型实际上没有任何限制。 如果您需要学习MongoDB的基础知识,则MongoDB站点上的文档不错。
Java中的MongoDB
Mongo Java驱动程序基本上将所有文档公开为键值对(显示为map和值列表)。 这意味着,如果必须使用Java存储或检索文档,则必须将POJO映射到该映射接口。 以下是通常需要编写的代码类型示例,以将文档从Java保存到MongoDB:
BasicDBObject doc = new BasicDBObject();
doc.put("user", "carfey");
BasicDBObject post1 = new BasicDBObject();
post1.put("subject", "spam & eggs");
post1.put("message", "first!");
BasicDBObject post2 = new BasicDBObject();
post2.put("subject", "sorry about the spam");
doc.put("posts", Arrays