Mongodb联合查询

在关系型数据库中,通过连接运算符可以实现多个表联合查询。而非关系型数据库的特点是表之间属于弱关联,Mongodb作为Nosql代表,其本身特性不建议对多Collection关联处理,不过对于有些需要对多表关联处理的需求,Mongodb也可以实现。主要分为两种方式:简单手工关联和DBRef方式关联

1.简单手工关联
下图表示帖子和用户两个Collection的ER图:

首先将authors集合中的用户对象查询出来,放在一个变量author中,代码如下:
Shell代码 
> author=db.authors.findOne({name:"chenzhou"}) 
{ 
    "_id" : ObjectId("5030ba7621bdee44765b2147"), 
    "name" : "chenzhou", 
    "email" : "chenzhou1025@126.com" 
} 
通过用户对象author来获取帖子列表,代码如下:
Shell代码 
> for(var post=db.posts.find({"author_name":author.name}); post.hasNext();){ 
... printjson(post.next().title); 
... } 
"Hello Mongodb" 
"Hello World" 
"Hello My Friend" 
2.DBRef方式关联
DBRef就是在两个Collection之间定义的一个关联关系,比如,把CollectionB "_id"列的值存在CollectionA的一个列中,然后通过CollectionA这个列中所存的值在CollectionB中找到相应的记录。
示例:模拟用户发帖的过程,看一看如何将帖子表和用户表建立关联。
步骤1:取得当前用户信息,代码如下:
Shell代码 
> author=db.authors.find({name:"chenzhou"})[0] 
{ 
    "_id" : ObjectId("5030ba7621bdee44765b2147"), 
    "name" : "chenzhou", 
    "email" : "chenzhou1025@126.com" 
} 
步骤2:发帖子并做关联,代码如下:
Shell代码 
> db.posts.insert({"title":"Hello Mongodb DBRef1", 
... authors:[new DBRef('authors',author._id)]}) 
> db.posts.insert({"title":"Hello Mongodb DBRef2", 
... authors:[new DBRef('authors',author._id)]}) 
> 
步骤3:通知帖子查找用户信息,代码如下:
Shell代码 
>  db.posts.find({"title":"Hello Mongodb DBRef1"})[0].authors[0].fetch() 
{ 
    "_id" : ObjectId("5030ba7621bdee44765b2147"), 
    "name" : "chenzhou", 
    "email" : "chenzhou1025@126.com" 
} 

 

mongo 中两张表联合查询 需要查询user表中roleCodes 包含shr 的数据 然后联合dept表 需要部门名称。让最后的数据 deptName 显示成集合 不要分开显示。 阅读详情

相关推荐

张正友标定法_单目-线激光三维扫描系统中光刀平面的标定

单目-线激光三维扫描系统中光刀平面的标定线结构光有结构简单、精度高、测速快等特点,被广泛应用于三维重建领域。线结构光三维扫描系统由一个相机和一个线结构光投射器构成,线结构光投射器将线结构光投射到被测物体表面,相机采集带有线激光的被测物体图像,根据相机和线激光投射器间的相对位置关系,使用激光三角法计算出激光线上的点在相机坐标系下的坐标。激光三角法原理如下图所示,线激光投射的扇形区域可以看作是一个平面...

weixin_39616379的博客 1075

mongodb关联查询

mongodb关联查询

港港的博客 3612

用VINS-Fusion跑通EuRoC数据集:Ubuntu22.04+ROS2环境下的保姆级评测指南

本文详细介绍了在Ubuntu22.04和ROS2 Humble环境下使用VINS-Fusion处理EuRoC数据集的完整流程。从环境配置、数据集转换到参数调优和性能评估,提供了一套全面的多传感器融合分析方案,帮助开发者在无人机精准定位场景中实现高效部署与优化。

weixin_29212867的博客 518

Ubuntu16.04下禁用scp、sftp和winscp

在上一篇博文《Ubuntu16.04 搭建FTP服务器,设置用户权限为只许上传、禁止下载和删除》中,我讲述了Ubuntu16.04下配置FTP,并且设定用户权限为只能上传数据,禁止下载和删除数据。这算在FTP层面封堵了服务器数据泄露的途径。 但是,Ubuntu系统的scp和sftp还是起作用的,理论上只要能用本地机器ping通服务器,就可以用scp和sftp下载数据,这还是存在数据泄露可能的,所...

HPC&Geophysics攻城狮 5737

海康威视工业相机网络配置实战:从MVS软件操作到IP地址规划

本文详细介绍了海康威视工业相机的网络配置实战,从MVS软件操作到IP地址规划。重点讲解了IP设置的重要性、Windows系统下的网络配置步骤、避免IP冲突的技巧,以及MVS软件中的相机IP配置方法。帮助用户快速掌握工业相机的网络连接技术,确保稳定高效的图像采集。

weixin_30296405的博客 486

mongodb联合查询

mongodb联合查询 如果熟悉关系型数据库,这里的联合查询就是关联多个集合的查询(就像mysql中的多表查询)。 安装好mongodb以后,打开客户端程序mongo.exe执行以下操作。 1.创建数据库 use mongodb //创建数据库mongodb或者使用数据库mongodb 2.创建集合并插入数据 db.order.insert([ {_id:1,item:"alronds",pr...

manquebeaucoup的博客 2605

AgentScope 实战训练营-A2UI的完整实现:从概念到部署全流程

本文详细介绍了如何在AgentScope框架中实现Google的A2UI(Agent-to-Agent UI)协议,构建一个能生成可交互UI的智能体应用。文章涵盖了从环境准备、架构设计、核心代码实现到测试部署的完整流程,包括A2UI协议解析、技能系统、客户端实现、通信机制等核心技术点,适合AI Agent和前端开发人员学习参考。

program哲学 204

MongoDB联合查询

MongoDB联合查询 2012-04-15 16:32:44| 分类: MongoDB | 标签:mongodb mongodb联合查询 |举报 |字号大中小 订阅 1、简单手工关联 首先将结果查询出来放到一个变量里面,然后再查询 u = db.user.findOne({author:"wangwenlong"}); ...

diaowojian9497的博客 238

数据分析案例-电脑笔记本价格数据可视化分析3

本文基于Kaggle笔记本数据集(1303条记录,13个变量),使用Python进行数据可视化分析。通过自定义函数预处理了CPU频率、内存类型等关键特征,利用Seaborn和Matplotlib绘制了品牌分布、内存类型占比、价格影响因素等可视化图表。研究发现:1)Dell和Lenovo市场份额最大;2)SSD是主流存储类型;3)高RAM配置普遍采用SSD;4)Intel处理器占据绝对优势。分析揭示了不同品牌、配置与价格的关系,为消费者购买决策和市场策略制定提供了数据支持。

m0_64336780的博客 1万+

点云目标检测:open3d多窗口联动可视化

多个模型之间的对比除了指标之外,还需要可以直接直观的对比可视化结果,这次介绍一下如何使用open3d同时打开两个窗口分别加载两个模型的结果进行对比,同时实现两个窗口的联动,也就是当一个窗口拖动或者缩放时另外一个窗口也跟着做同样的变换。

zhaoguanhua的博客 4688

java mongodb 关联查询_Mongodb联合查询

packageorg.java.test;importjava.util.ArrayList;importjava.util.List;importorg.junit.Before;importorg.junit.Test;importorg.springframework.context.ApplicationContext;importorg.springframework.context.s...

weixin_31510505的博客 606

使用MATLAB的COMSOL LiveLink:实时连接和数据传输

COMSOL LiveLink是一种功能强大的MATLAB工具包,它允许用户在MATLAB环境中与COMSOL Multiphysics软件进行实时连接和数据传输。COMSOL LiveLink是一种功能强大的MATLAB工具包,它允许用户在MATLAB环境中与COMSOL Multiphysics软件进行实时连接和数据传输。使用COMSOL LiveLink,你可以进行更复杂的模型设置和数据传输使用MATLAB的COMSOL LiveLink:实时连接和数据传输。

PixelNinja的博客 2094

【mongoDB】 学习(三)java + mongodb 多表联合查询

【mongoDB】 学习(三)java + mongodb 多表联合查询 关键字 mongoDB、Java、$lookup、 $project、 $match 等 1、先介绍这次使用的 mongoDB 内的方法以及使用方式(Robo 3T 1.3.1) mongoDB 官网 https://docs.mongodb.com/manual/reference/operator/aggregation/project/index.html (1)$lookup 类似SQL server里面的 join "

Lobby_Anny的博客 2868

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

python实现对mongodb数据库进行多表联合查询 lookup

最近项目中需要用到对mongodb数据库进行联合查询,百度了一下都只有mongodb语句的联合查询方法,没有通过python来进行查询的。 可能是因为mongodb数据库不是关系型数据库,大家对于它的关系也用不到那么多。 表字段定义 mycol_case_collection = mydb["case_collection"] #表A mycol_ta...

yuer_xiao的博客 6386

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

MongoDB:联合查询并更新数据

–工作笔记,记录今天解决的一个问题。

SHARE & TOP 7894

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

.Net下验证MongoDB 的 Linq 模式联合查询是否可用

MongoDB.Driver 类库提供了 Linq 查询的支持。然而,在使用 Linq 进行联合查询时,是否能够正确转换为 MongoDB 底层的查询语句还有待验证。今天,我将进行实验来验证一下。

176

非关系型数据库MongoDB联合查询解决方案

前言 关系型数据库的使用有一套数学理论支撑,数据库表结构优化其实质就是优化范式。通常在关系型数据库中使用的第三范式。然而,在非关系型数据库中,使用第二范式更能够发挥非关系型数据库中的优势。 第二范式需要满足两点:一,属性不重复,二,所有的属性依赖于主属性。因此第二范式允许将一次查询的所有属性都存在同一张表中。 第三范式需要满足两点:一,满足第二范...

zhaoxj_2017的博客 2456

MongoDB or和and联合查询

MongoDB or和and联合查询 需求描述 项目中用的mongodb做数据库,有个导入excel数据的需求,2000多条数据,解析完之后,需要跟数据库的数据做比对,查看是否已经存在. 解决思路 1.首先解析excel的数据,存放着list中, 2.然后将此list作为参数,传入mongodb做查询, 3.mongo层循环拼接参数,最后只跟数据库交互一次,提高查询效率. mongo层代码实现@O...

u014716732的博客 1784
上一篇: 使用LruCache为GridView加载大量sdcard的图片
下一篇: 使用maven的好处
yufei_java
博客等级 码龄10年 18粉丝 60原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值