【问题标题】:mongodb schema design - add collection or extend existing onemongodb 模式设计 - 添加集合或扩展现有的集合
【发布时间】:2018-02-22 03:07:28
【问题描述】:

有一个包含 100.000 个文档的集合。其中只有 10 个必须具有其他文件不需要的附加属性(例如,只有顶部的部门列表具有属性“位置”); 据我了解,这两种方法都应该可以正常工作,但是由于使用 noSql db,哪一种更可取:

  1. 再添加一个集合,其中包含具有 2 个属性的文档:DepartmentId、Location。
  2. 仅将属性“位置”添加到选定的文档,因此其他人不会拥有它。

【问题讨论】:

    标签: mongodb


    【解决方案1】:

    您面临的问题是众所周知的。例如,您对源代码也是如此。

    更新一段代码时,是否保存为User.js, User2.js, User3.js ... ?

    或者您是否使用 git 之类的版本控制系统并拥有唯一的 User.js

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


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

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

    • 创建一个将应用于新条目的新模型,并且仍然使用旧模型来处理旧格式数据。

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

    【讨论】:

    • 我只是将文档添加到集合中,现在只是计划中。所以两个模式(文档类型)可以添加到一个集合中而不需要额外的步骤(比如额外的索引或smth)?
    • 完全没有额外的步骤。这是nosql数据库的最佳优势之一。模块化/进化性。
    猜你喜欢
    • 1970-01-01
    • 2018-06-09
    • 2019-07-28
    • 1970-01-01
    • 1970-01-01
    • 2014-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多