我需要来自不同集合的所有文档,这些文档都引用了某个“父”文档。任何简单的解决方法?
我天真的方法是循环所有集合并循环所有文档并检查条件。任何更简单/更有效的方式?
答案 0 :(得分:0)
我天真的方法是循环所有集合并循环所有文档并检查条件。任何更简单/更有效的方式?
好吧,没有难以回答的数据模型,但引用可能有一个索引,对吗?我的意思是你知道哪个字段是引用?例如,
Users (parent) {
Id : ObjectId("123"),
...
}
Comments {
Id : ObjectId("abc"),
UserId : ObjectId("123"),
...
}
Questions {
Id : ObjectId("efc"),
UserId : ObjectId("123"),
...
}
然后,知道UserId
是引用,您可以调用db.Comments.find({ UserId : ObjectId("123") })
并查找所有引用。这样,您就不必遍历所有文档。您唯一需要的是查找表collection name -> name of the reference field