2017-09-13 46 views
0

有一个包含100.000个文档的集合。其中只有10人必须拥有其他文件不需要的额外财产(例如,只有最高职位的部门名单才有财产'位置'); 据我了解这两种方法应该工作得很好,但哪一个是可取的,因为使用的NoSQL数据库:mongodb架构设计 - 添加集合或扩展现有的集合

  1. 增加一个集合与具有2属性文件:DepartmentID的,位置。
  2. 将属性'位置'添加到选定的文档,所以其他人不会拥有它。

回答

1

您面临的问题众所周知。例如,您可以使用源代码。

当你更新的代码,你将它保存为User.js, User2.js, User3.js ... ?

还是你使用versionning系统如Git,并有独特的User.js

翻译你的问题的git类比,你应该更新当前的数据。


在mongodb中,您实际上有两种选择来执行更新。

  • 更新代码中的模型,并更新数据库中的每个条目以匹配新模型。

  • 创建一个适用于新条目的新模型,并且仍旧具有处理旧格式数据的旧模型。

use-more-than-one-schema-per-collection-on-mongodb

+1

我只打算给文档添加到收藏,现在它只是规划。因此,可以将两个模式(文档类型)添加到一个集合中,而不需要额外的步骤(如额外的索引或smth)? – Anton

+1

完全没有额外的步骤。这是nosql数据库的最佳实力之一。模块化/演变性。 –