用Mongodb本身的API需要硬编码才能实现外键关联,不够直观且难度较大,这种情况下可以用集算器来实现,下面用例子说明。
Collection UserCourseProgress记录着用户和课程的关系,其courseid字段是外键,指向Collection Course的_id字段。需要统计出每门课的人数,其中课程名称需要使用Course的title字段。
UserCourseProgress |
Course |
{"userId":"u01", "courseid":"c01", "timespent":6000, score:99} {"userId":"u02", "courseid":"c01", "timespent":6000, score:99} {"userId":"u03", "courseid":"c01", "timespent":6000, score:99} {"userId":"u04", "courseid":"c01", "timespent":6000, score:99} {"userId":"u05", "courseid":"c01", "timespent":6000, score:99} {"userId":"u01", "courseid":"c02", "timespent":6000, score:99} {"userId":"u02", "courseid":"c02", "timespent":6000, score:99} {"userId":"u03", "courseid":"c03", "timespent":6000, score:99} |
{"_id":"c01" "title":"Japanese159", "description":"Japanese base", "category":"language"} {"_id":"c02" "title":"Chinese200", "description":"Chinese middle", "category":"language"} {"_id":"c03" "title":"Political science 280", "description":"Political middle", "category":"politics"} {"_id":"c04" "title":"EE490", "description":"electronic engineering hign", "category":"Electronic"} |
集算器代码:
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中的记录,结果如下:
A5:按对象方式访问内存,形成新的二维表,结果如下:
A6:关闭mongodb连接。
相关推荐
MongoDB大数据处理权威指南 MongoDB大数据处理权威指南 MongoDB大数据处理权威指南
大数据处理权威指南
MongoDB大数据处理权威指南 中文第2版
《MongoDB大数据处理权威指南(第2版)》
本文实例讲述了Mongodb实现的关联表查询功能。分享给大家供大家参考,具体如下: Population MongoDB是非关联数据库。但是有时候我们还是想引用其它的文档。这就是population的用武之地。 Population是从其它文档...
以mongodb的数据库设计为例,简单介绍了nosql数据库设计。
MongoDB大数据处理权威指南 第2版,有需要的可以学习一下下。支持购买正版书籍!
非关联数据库mongodb 的demo,
mongoDB分片技术处理方案,内容详细
sudo vim /etc/yum.repos.d/mongodb-org-4.2.repo 写入: [mongodb-org-4.2] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.2/x86_64/ gpgcheck=1 enabled=1 gpg...
资源名称:MongoDB应用设计模式内容简介:无论是在构建社交媒体网站,还是在开发一个仅在内部使用的企业应用程序,《MongoDB应用设计模式》展示了MongoDB需要解决的商业问题之间的连接。你将学到如何把MongoDB设计...
一、MongoDB简介 3 二、MongoDB结构 3 二、MongoDB 数据库关系型(这里并不是值关系型数据库的关系) 3 1、MongoDB一对一关系型 3 2、MongoDB一对多关系型 4 3、MongoDB多对多关系型 4 三、创建数据库(mongodb_test...
本课程是一套关于MongoDB应用开发的实战性教程,名为《深入浅出MongoDB应用实战开发(基础、开发指南、系统管理、集群及系统架构)》,教程侧重于讲解MongoDB的常用特性及高级特性,从实际开发的角度出发对MongoDB...
mv mongodb-linux-x86_64-4.0.18 mongodb 3、进入 mongodb 目录创建目录 db 和 logs cd /usr/local/mongodb mkdir db mkdir logs 4、进入到 bin 目录下,编辑 mongodb.conf 文件,内容如下: dbpath=/usr/local/...
在学习非关系型数据库mongoDB,希望能够完成数据库的CRUD,采用的是JS做的后台,因此用到了mongoose,下面这篇文章主要给大家介绍了关于在mongoose中填充外键的相关资料,文中介绍的非常详细,需要的朋友可以参考借鉴,...
Spring Data MongoDB 2.1中的新特性 5.2。Spring Data MongoDB 2.0中的新特性 5.3。Spring Data MongoDB 1.10中的新特性 5.4。Spring Data MongoDB 1.9中的新特性 5.5。Spring Data MongoDB 1.8中的新特性 5.6。...
【BAT必备】MongoDB面试题【BAT必备】MongoDB面试题【BAT必备】MongoDB面试题【BAT必备】MongoDB面试题【BAT必备】MongoDB面试题【BAT必备】MongoDB面试题【BAT必备】MongoDB面试题【BAT必备】MongoDB面试题【BAT...
MongoDB图形化管理工具 MongoDB Compass