在mongodb

时间:2019-06-10 11:59:19

标签: mongodb datatable version-control nosql

上下文:

我正在开发一个应用程序,该应用程序需要处理不一定具有统一结构的表(例如,不同/额外的列)。那些非结构化文件也需要分组(比如说5个表组成一个组,每个表具有不同的内容)。并且最好以一种简单有效的方式对组中的每个文件进行版本控制(例如,如果仅更改一行,则无需复制整个文件)。

我想到的当前解决方案:

  • 使用应用程序需要的一些标准字段定义架构,例如name of a file group, ..., timestamps, path_to_repository, hash_of_repository_content (to invalidate), status (eg. being_updated, for concurrency) }
  • path_to_repository,我将拥有一个git存储库并以csv格式保存文件(为每个文件创建一个子模块,以便可以独立地对文件组中的每个文件进行版本控制)。
  • 为了访问这些文件,我将获取存储库,并且head将是文件的当前版本。然后,我可以轻松地进行版本控制,可以使表的大小不受限制,而没有任何结构,并且不会受到mongodb的最大文件大小的限制。如果有任何其他信息需要版本控制,我可以将它们添加到存储库中。
  • 要处理并发性,我将在mongodb中更新一个标志,这样它将为我处理并发性。如果两个应用程序同时尝试写入存储库,则它们将首先设置标志/锁定。如果标志已被其他人更新,则需要等待。

问题:

我不确定这是否是一个好习惯(如果我没有发现任何问题,无论我是否正在重新发明轮子,它是否有良好的性能,能否达到这个规模)。任何建议/经验/批评都会很棒。

可能不相关的其他信息:

nodejs/mongoose以及python脚本都将使用它。

0 个答案:

没有答案