【问题标题】:Storing data in XML or MongoDB在 XML 或 MongoDB 中存储数据
【发布时间】:2011-11-16 11:14:35
【问题描述】:

这是我的用例。

  1. 我有一些数据,现在存储在 xml 文件中。我存储的数据不是持久的,即一旦用户注销,我将删除用户数据。
  2. 我的服务器使用 XML 请求和响应与客户端通信。所以最初我们决定,因为我们将 XML 作为响应发送,所以将其存储在 XML 中,这样可以节省从数据库到 XML 格式的转换时间。
  3. 客户端将根据某些过滤条件请求 XML。所以我将不得不使用 XQUERY。
  4. 到目前为止,XML 中最多有 100 个条目。

现在我想听听一些关于我应该使用 XML 还是 MongoDB 的建议。 我的担忧:

  1. 在 MongoDB 中存储临时数据并在会话完成后删除/进行备份有多好?
  2. 从 MongoDB json 格式转换为 XML。
  3. 处理架构设计中的更改。

我不能使用除 MongoDB 之外的任何其他数据库,因为一些持久性操作仍在 MongoDB 上完成。

提前致谢。

【问题讨论】:

  • 如果您的容量足够小,您甚至会考虑基于文件的存储,MongoDB 将轻松处理存储 XML 并适当地管理空间。恕我直言,为 Web 解决方案存储 XML 文件是自找麻烦。使用适当的数据存储。大多数数据库可以处理存储 XML 数据。使用最适合您的环境的一种。

标签: xml mongodb


【解决方案1】:

您最好使用 MongoDB 来处理会话数据。基于会话开始或会话结束创建和删除对象应该没有问题。您将利用高性能的 MongoDB,它会随着时间的推移为您提供可扩展性。

根据您选择的语言,(我使用 C#)您可能能够将 Json 序列化为对象而不会造成任何性能损失。例如,C# 驱动程序为您处理序列化,因此您从 Mongo 检索的每个对象都将自动表示为 C# 对象。与您可以填充 C# 对象并将其存储在数据库中的方式相同,所有这些都由驱动程序处理。

如果您通过对象管理数据以在 mongodb 之间进行序列化/反序列化,您实际上也可以将数据序列化/反序列化为 XML。因此,您用于 Mongo 的相同对象也可用于管理您的 xml。

所以回答你的问题:

  1. 在 MongoDB 中存储临时数据并在会话完成后删除/进行备份有多好?应该与任何其他数据库一样适用。绝对比将数据存储在服务器上的 XML 文件中要好。

  2. 从 MongoDB json 格式转换为 XML。 根据您的 mongodb 驱动程序,您可以同时使用对象和序列化/反序列化到 mongodb 和 xml,从而实现从 xml 到mongodb来回很方便。

  3. 处理模式设计中的更改。 Mongo 是无模式的,因为它使用文档而不是表。文档结构中的任何更改都将由 mongoDB 处理,因为没有像关系数据库中那样的模式。

我希望这有点道理。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-10
    • 1970-01-01
    • 1970-01-01
    • 2010-10-04
    • 1970-01-01
    相关资源
    最近更新 更多