我需要在MongoDB中实现对象之间的关联,以允许从任何级别进行检索查询。假设我有一个模型 Account-> Application-> Device-> users 。假设我想使用帐户引用查询用户集合,或者从我想要查询用户的任何层次结构中查询。
由于我们不支持连接,因此我无法保留单独的关联集合,即使我保留了一个关联集合,我将不得不进行一系列查询,并且关联集合的输出可能是一个庞大的对象集合,我将留下两个选项来使用
对数组中的每个对象进行迭代查询
在运营商中使用$
都是灾难性的。
我已经找到了一种保存祖先树的方法,如跟随文档。
{
_id: ObjectId(""),
Name:"",
Timestamp:ISODate(" "),
...
ancestors :[{_id:ObjectId(""),..},{_id:ObjectId(""),..},{_id:ObjectId(""),..}]
}
假设这是带有祖先的用户文档,如deviceId,applicationId,accountId。 我不确定它会有多大用处。 我确信上述模型的一件事是,如果添加更新中的任何新级别将是一个痛苦。
我想要实现此模型的主要原因是实现松耦合模型。
谢谢你提前!!!