Mongodb Mongo/第二层数据查询没有SQL解决方案?

Mongodb Mongo/第二层数据查询没有SQL解决方案?,mongodb,join,reference,nosql,Mongodb,Join,Reference,Nosql,我有一个现有的PostgreSQL数据库,它包含大约500000个条目,每个条目本质上都是一个巨大的类别树中的类别(每个类别都有不同的元素模式) 我还有一个MySQL数据库,它包含大约100000个文档,每个文档可以是一个或多个类别中的类别 我需要能够搜索文档,这与文档链接到的类别中设置的属性过滤器相匹配 据我所知,我必须在每个文档中,在mongo中存储与文档链接的所有类别相关的所有数据,这看起来很疯狂。我怎样才能做到这一点 举个例子,想象一个类别,它代表一辆1964年制造的红色汽车,以及一份1

我有一个现有的PostgreSQL数据库,它包含大约500000个条目,每个条目本质上都是一个巨大的类别树中的类别(每个类别都有不同的元素模式)

我还有一个MySQL数据库,它包含大约100000个文档,每个文档可以是一个或多个类别中的类别

我需要能够搜索文档,这与文档链接到的类别中设置的属性过滤器相匹配

据我所知,我必须在每个文档中,在mongo中存储与文档链接的所有类别相关的所有数据,这看起来很疯狂。我怎样才能做到这一点


举个例子,想象一个类别,它代表一辆1964年制造的红色汽车,以及一份1990年关于那辆红色汽车的文件。我需要能够搜索1964年和罚款文件的汽车,以及汽车本身

MongoDB中的n:m关系可以用数据库引用数组(DBRef)或对象ID数组表示

所以每个文档都有一个字段“categories”,该字段有一个数组,其中包含它所属类别的ID或数据库引用

有关更多信息,请参阅本文:

避免仅为了显示类别名称而执行多个数据库查询的另一种方法是将类别名称放在该数组中,而不是放在ID中。然后,还应向类别集合的名称字段添加索引(使用ensureIndex函数),以加快查找速度(您可能希望在该字段上创建唯一索引,以避免重复的类别名称)


关于一个对象拥有的数据,因为它属于一个类别,就像汽车有一个制造商,文档有一个文档中提到的其他对象列表:这些数据应该直接放入对象的文档中。面向文档的数据库的优点是并非每个实体都必须具有相同的字段。

我想更大的问题是,mongo数据记录是否可以包含对另一个记录的引用,或者是否必须显式地将所有包含的数据设置为每个记录的一部分,具体取决于特定语言的mongo驱动程序实现,当您的问题主要是如何管理对象之间的交叉引用时,可以使用图形数据库来表示另一个集合(表)中的文档。