在mongodb制作病历DB的最佳方法

时间:2014-08-26 18:06:11

标签: mongodb data-modeling nosql

我正在制作一个存储数据库中所有人的医疗和健康数据的系统,我选择mongodb来完成这项工作,但我是mongodb建模的新手,我不知道什么是最好的办法。

我是否为每个pacient使用文档并插入如下的子文档:

 $evolution=array(); //subdocument
 $record=array(); //subdocument
 $prescriptions=array(); //subdocument
 $exams=array(); //subdocument
 $surgeries=array(); //subdocument

还是为这些数据中的每一个创建一个新文档?

我知道文件大小的限制为16兆字节,但我不知道这些信息是否会达到限制。

1 个答案:

答案 0 :(得分:2)

文档的确切布局在很大程度上取决于您需要进行的查询类型。遗憾的是,如果没有详细了解您的用例,就无法就最佳布局提供良好的建议。

根据您的使用情况,如您所示,将文档/患者与子文档一起使用可能是有效的。在某些情况下,尽管为每个指定的字段设置单独的集合可能更好。这完全取决于这些文档的大小,您需要执行的查询类型等。

一些一般性建议:

  • 尽量避免使用多个集合的查询。
  • 如果您的查询变得困难,您的布局可能会错误。在这种情况下,重新评估您的布局。
  • 不断增长的文件可能会产生问题,因为Mongo经常不得不移动它们以便为增长腾出空间。如果他们将快速增长,那么重新评估是否有更好的布局。
  • 虽然您可以在Mongo的同一个集合中技术上存储不同的文档布局,但通常不被认为是一种好的做法。理想情况下,集合中的所有文档都应遵循某种模式,即使该模式没有严格定义。
  • 字段名称很重要。它们占用了Mongo的空间,因此如果您希望获得大量数据,那么短字段名称会更好。

我能提供的最佳建议是从你认为可行的方法开始,看看它是如何发展的。如果获得您需要的信息变得笨拙或困难,那么请重新评估。