在我的MongoDB数据库中,我有许多需要查找/分类信息的文档类型。通常情况下,我要么持有查询的ID,要么持有Id并将查找信息归结为主文档。
e.g。
task = {
TaskDetail : "Some task",
TaskPriority : { Id : xxxxx, Code : 'U', Description:'Urgent' }
}
从传统的关系数据库(RDBMS)转移到我只有一个TaskPriority
表,我想知道在mongo中使用文档时最佳做法是什么?
我最初的想法是要有一个分类/查找集合。通常,查找和枚举很短,因此每个文件都可以是集合中的单独文档?或者我可以镜像你在RDBMS数据库中通常做的事情并创建一个集合来查找?
有人能指出我正确的方向吗?
提前致谢,
萨姆
答案 0 :(得分:0)
参考具有以下优点:
缺点:
嵌入 - 另一方面,嵌入对参考数据没有意义,因为如果查找值得到更新,您需要更新所有文档。这是一个巨大的练习,可以跟踪需要参考数据更新的所有文档及其密钥。
其次嵌入参考数据,也无法实现SCD(缓慢变化维度)的历史保存能力。如果使用引用,则可以使用引用集合中的版本日期来实现此目的。考虑到这些要点,我倾向于参考。但我唯一的疑问是,如果我的父文档中没有引用的值,搜索将如何工作?当用户使用描述性引用值进行搜索时,mongo将如何引用引用数据集合?