获取所有文档都引用了MongoDB中的某个文档

时间:2015-05-21 15:01:51

标签: mongodb

我需要来自不同集合的所有文档,这些文档都引用了某个“父”文档。任何简单的解决方法?

我天真的方法是循环所有集合并循环所有文档并检查条件。任何更简单/更有效的方式?

1 个答案:

答案 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