MongoDB的外键关联

  来源: http://stackoverflow.com/questions/29392169/populating-field-values-for-referred-documents-in-aggregate-call-in-mongoose
  用Mongodb本身的API需要硬编码才能实现外键关联,不够直观且难度较大,这种情况下可以用集算器来实现,下面用例子说明。

  Collection UserCourseProgress记录着用户和课程的关系,其courseid字段是外键,指向Collection Course的_id字段。需要统计出每门课的人数,其中课程名称需要使用Course的title字段。

MongoDB的外键关联_第1张图片

  集算器代码:

MongoDB的外键关联_第2张图片

  A1:连接MongoDB,连接字格式为mongo://ip:port/db?arg=value&…

  A2:统计出每门课的人数。这里使用aggregate函数从MongoDB中取数,该函数继承自mongdb,第1个参数是collection名,第2个参数是汇总表达式,遵循mongodb规范。计算结果是内存数据,如下:


  A3: 从Course中取出码表。这里使用find函数从MongoDB中取数,该函数继承自mongdb,第2个参数是过滤条件,写法遵循mongodb规范。Find的结果是游标,由于课程数量较少,因此用fetch函数将游标读入内存,结果如下:


  A4:使用switch函数将A3中的外键切换为A2中的记录,结果如下:

MongoDB的外键关联_第3张图片

  A5:按对象方式访问内存,形成新的二维表,结果如下:


  A6:关闭mongodb连接。


你可能感兴趣的:(大数据,mongodb,外键关联,集算器)