开发者社区> 问答> 正文

MongoDB:在一次查询中执行多次解引用怎么做?

我设定了几个集合,Country, Province, City, Univ.
country和province,province和city,city和univ之间都是一对多的关系。通过引用连接。
现在我想知道,一个country中有哪些univ,这个要怎么做?假设该country为country0.
文档结构如下:
screenshot
screenshot
我找过一些资料,如果country只有一个,并且涉及到的引用不超过两层,可以用fetch()函数。但是这里至少有3层了。
也看到有人介绍引用的时候说可以用python驱动,但是用python驱动的话,就不好记录查询性能了。
我自己的思路是:
1.获取所有属于country0的province.
2.获取所有属于1中province的city。
3.最后获得city中的所有univ。
但是涉及到的命令太多了,显得繁琐

展开
收起
蛮大人123 2016-02-14 16:21:44 2609 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    因为university的city/province/country极少可能会改变,正解就是把这些字段都加到university的文档里面并在上面做索引。

    {
     _id:"univ0",
     location: { city: { }, province: {}, country: {} }
     }
    
    db.university.ensureIndex({"location.country":1});

    你可以选择用DBRef或者直接存入city/province/country的名字。

    2019-07-17 18:42:43
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
开源数据库 MongoDB 专场 MongoDB疑难杂症分析及优化 立即下载
MongoDB多数据中心的方案选型之路 立即下载
饿了么高级架构师陈东明:MongoDB是如何逐步提高可靠性的 立即下载