java - CouchDb - MongoDb 和 NoSQL 数据库比较(使用 XML 文档)

标签 java spring mongodb couchdb nosql

我正在开发一个使用 Java 和 Spring 3 的项目。我有一个新任务。会有 Xml 文件,我得到这些文件并将它们转换为对象。之后,我会将它们放入数据库中。

我检查nosql数据库的主要话题。 CouchDbMongoDb 是我应该搜索的数据库。我将在数据库中对该对象进行 search (索引类型之一将是日期,我将在选择之间创建日期)。 性能对我和

来说都很重要

我将处理大量数据,这就是我应该搜索nosql 数据库的原因。

根据我的情况,你有什么建议,它们的优缺点是什么,我应该选择哪一个以及为什么?

我搜索并看到 Couch DB 使用 REST API,而 Mongo DB 使用驱动程序,根据此处,它是 Mongo 的性能优势:http://www.mongodb.org/display/DOCS/Comparing+Mongo+DB+and+Couch+DB

然而,Couch DB 使用复制来扩展(这是一种性能优势吗?)

我也意识到有 BaseX 和 eXist。根据我的需要,您建议有人与他们合作过吗?

PS:我也会像日志一样获取 XML 文件。它们不会改变,我也不会操纵它上面的数据。

最佳答案

这是一个很大的问题,但我会尽力解决它。我工作的一家公司正在从使用 MySQL 开发我们的应用程序转变为 NoSQL,我是第一个 NoSQL 数据库的领导者,我们正在决定使用哪个 NoSQL 数据库。我介于 MongoDB、CouchDB 和 Cassandra 之间。我必须考虑的一个重要因素是,编写基线函数以使用数据库有多容易,因此您不必了解正在发生的事情但仍然能够执行查询等等。 cassandra 的问题在于 API 非常低级,需要一些时间来编写可靠的高级接口(interface),而我们没有那种时间。 couchdb 的问题是 REST 服务。由于我们已经使用 rest 连接到我们的内部 api,这将是一个双重休息服务。 REST 通常会通过 http 进行处理,并且 http 有相当多的开销才能使其易于使用。而且开销增加了加载信息的时间。因此,出于这个原因和许多其他原因,我们采用了 mongodb。此外,由于它是一个驱动程序,因此它被开发为与编程语言一起使用,如果您的语言受支持,那就太好了,如果不支持,那就太糟糕了。由于 mongodb 支持 Java,所以它很好。

我建议将 XML 文件转换为对象,然后将对象存储在 mongo 中。所以每个 XML 文件都将嵌入 mongodocuments 关于 mongo 的好处是您可以搜索嵌入的文档并且您可以索引它们。所以享受帽子

关于java - CouchDb - MongoDb 和 NoSQL 数据库比较(使用 XML 文档),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7718177/

相关文章:

mongodb - Hive 在 where 子句上崩溃

python - MongoDB Compass 中的 UTC 日期不正确

java - Tic Tac Toe 获胜者检查器问题

java - 无法写入 JSON : No serializer found for class java. io.FileDescriptor 并且未发现用于创建 BeanSerializer 的属性

spring - org.springframework.beans.factory.BeanCreationException : Error creating bean with name 'requestMappingHandlerMapping' defined

spring - MongoDB 找不到能够从类型 org.bson.types.ObjectId 转换为类型 java.lang.Long 的转换器

Java 和 HashMap - 如何添加现有值?

java - 识别重构后留在错误包中的测试

java - 将 BufferedReader 放在另一个用于从输入文件中检索数据的函数中是否明智

javascript - NodeJs 中的变量值是否可以为 "save"?