mongodb联合查询
mongodb联合查询
如果熟悉关系型数据库,这里的联合查询就是关联多个集合的查询(就像mysql中的多表查询)。
安装好mongodb以后,打开客户端程序mongo.exe执行以下操作。
1.创建数据库
use mongodb //创建数据库mongodb或者使用数据库mongodb
2.创建集合并插入数据
db.order.insert([{_id:1,item:"alronds",price:12,quantity:2},{_id:2,item:"pecans",price:20,quantity:1},{_id:3}
])
db.order.find()//执行成功后可查看插入的数据内容db.inventory.insert([{_id:1,sku:"alronds",descriptior:"product1",instock:120},{_id:2,sku:"pecans",descriptior:"product2",instock:80},{_id:3,sku:"pread",descriptior:"product3",instock:60},{_id:4,sku:"casnews",descriptior:"product4",instock:70},{_id:5,sku:"pecans",descriptior:"product5",instock:80},{_id:6,sku:"pecans",descriptior:"product6"},{_id:7}
])
db.inventory.find()//执行成功后可查看插入的数据内容
3.两个集合查询
根据订单查询商品的数量,即instock字段的值。此时需要将集合order与inventory进行关联。
db.order.aggregate([{$lookup: //管道中加入一次查找操作{from:"inventory", //从哪个集合产生关联localField:"item", //本地字段itemforeignField:"sku", //inventory 的sku字段//当order.item == inventory.sku时,两个集合就合起来展示数据as:"inventory_sku"}}
])
直接复制时需要将注释去掉。
若在执行过程中出现这样的错误:Display all 174 possibilities? (y or n),因为编辑时使用的Tab缩进,所以需要把你直接复制的代码中的Tab缩进去掉。
三个集合查询
创建一个新的集合如下:
db.taring.insert([{_id:1,item2:"alronds",rate:"A"},{_id:2,item2:"pecans",rate:"B"}
])db.order.aggregate([{$lookup: //管道中加入一次查找操作{from:"inventory", //从哪个集合产生关联localField:"item", //本地字段itemforeignField:"sku", //inventory 的sku字段//当order.item == inventory.sku时,两个集合就合起来展示数据as:"inventory_sku"}},{$lookup: //管道中加入一次查找操作{from:"taring", //从哪个集合产生关联localField:"item", //本地字段itemforeignField:"item2", //inventory 的sku字段//当order.item == inventory.sku时,两个集合就合起来展示数据as:"traing_item2"}}
])
mongodb联合查询相关推荐
- MongoDB联合查询 -摘自网络
1.简单手工关联 首先将结果查询出来放到一个变量里面,然后再查询 u = db.user.findOne({author:"wangwenlong"}); for(var p = ...
- java mongodb dbref_Spring DATA MongoDB @DBref查询,or和and联合查询
@DBref文档关联,在按该类型查询的时候,在字段名后加上关联表的字段名即可,如: Criteria.where("bloggroup.$id"), $id代表关联表的oid字段. ...
- MongoDB聚合查询 Pipeline 和 MapReduce
MongoDB聚合查询 MongoDB聚合查询 什么是聚合查询 Pipeline聚合管道方法 聚合流程 详细流程 聚合语法 常用聚合管道 $count $group $match $unwind $p ...
- sql 预先_预先联合查询
sql 预先 介绍 (Introduction) According to The Presto Foundation, Presto (aka PrestoDB), not to be confus ...
- MongoDB高级查询介绍
title: MongoDB高级查询介绍 date: 2017-12-3 22:14:19 tags: MongoDB MongoDB查询 categories: 数据库 在几乎所有的项目中对数据库的 ...
- 04 MongoDB各种查询操作 以及聚合操作总结
基础篇(能解决工作中80%的问题): MongoDB的概述.应用场景.下载方式.连接方式和发展历史等 MongoDB数据类型.重要概念以及shell常用指令 MongoDB文档的各种增加.更新.删除操 ...
- oracle主从关系表查询,Oracle 主从表联合查询解决方法
Oracle 主从表联合查询 表A id type name 1 E AA 2 F 表B id Aid name 1 2 BB 2 2 ...
- ormlite 多表联合查询
ormlite 多表联合查询 QueryBuilder shopBrandQueryBuilder = shopBrandDao.queryBuilder(); QueryBuilder shopQu ...
- iphone8p百度云认证_探秘百度数据工厂Pingo的多存储后端数据联合查询技术
作者介绍:张志宏,2013年加入百度大数据部,曾作为核心成员参与百度大数据平台的搭建.目前是百度数据工厂Pingo核心团队的技术负责人. Pingo是来自百度的离线大数据集成开发平台,使用Spark作 ...
- mysql联合查询查询语句_mysql 各种联合查询语句
简单的介绍了各种联合查询语句的用法,有inner join ,join left等多表联合查询,有需要的朋友可以参考一下. INNER JOIN(等值连接) 只返回两个表中联结字段相等的行 LEFT ...
最新文章
- 判断一个序列是不是堆的方法
- 解压与压缩(把dataset转为string、、 )
- 选择排序之——堆排序(c/c++)
- 15.verilog可综合语句设计综述
- python编程设计_Python程序设计
- e.printStackTrace()不是打印吗,还能锁死?
- 赠你一只金色的眼 - 富集分析和表达数据可视化
- eclipse中使用git回到之前的版本
- Python无限播放励志语句
- Github操作指南
- php中怎么引用js变量_理解下 Go 中的引用是怎么回事
- 计算机组成原理期末大纲
- YouTube批量下载开源代码汇总
- #python “滑动窗口” 处理氨基酸序列
- 苹果电脑如何开启文件保险箱功能?
- 利用Windows11安卓子系统对APP进行渗透测试
- SIP/VoIP之常见的语音问题
- TCP FIN扫描探测原理
- VirtualAPK 报错: Failed to notify project evaluation listener. > SDK location not found. Define locati
- 考试/答题系统的设计思路
热门文章
- 分享一款手机最强Python编程神器,用手机运行Python。天秀!
- 易企秀12.4 模板编辑无法删除页面问题分析
- OpenModelica中的可视化仿真
- android 自定义消息,TUIKit Android自定义消息
- 基于MinimaxAlpha-Beta剪枝和强化学习的播棋(Mancala)AI
- Windows8[Web应用程序项目***已配置为使用IIS。无法访问IIS元数据库,您没有足够的特权访问计算机上的IIS网站]
- 虚拟机安装CentOS系统教程(详细)
- 【血型】+【星座】准到吓人
- pytorch中加入注意力机制(CBAM),以ResNet为例。到底要不要用ImageNet预训练?如何加预训练参数?
- 2017互联网寒冬程序员求职随感