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联合查询相关推荐

  1. MongoDB联合查询 -摘自网络

    1.简单手工关联 首先将结果查询出来放到一个变量里面,然后再查询 u = db.user.findOne({author:"wangwenlong"}); for(var p = ...

  2. java mongodb dbref_Spring DATA MongoDB @DBref查询,or和and联合查询

    @DBref文档关联,在按该类型查询的时候,在字段名后加上关联表的字段名即可,如: Criteria.where("bloggroup.$id"), $id代表关联表的oid字段. ...

  3. MongoDB聚合查询 Pipeline 和 MapReduce

    MongoDB聚合查询 MongoDB聚合查询 什么是聚合查询 Pipeline聚合管道方法 聚合流程 详细流程 聚合语法 常用聚合管道 $count $group $match $unwind $p ...

  4. sql 预先_预先联合查询

    sql 预先 介绍 (Introduction) According to The Presto Foundation, Presto (aka PrestoDB), not to be confus ...

  5. MongoDB高级查询介绍

    title: MongoDB高级查询介绍 date: 2017-12-3 22:14:19 tags: MongoDB MongoDB查询 categories: 数据库 在几乎所有的项目中对数据库的 ...

  6. 04 MongoDB各种查询操作 以及聚合操作总结

    基础篇(能解决工作中80%的问题): MongoDB的概述.应用场景.下载方式.连接方式和发展历史等 MongoDB数据类型.重要概念以及shell常用指令 MongoDB文档的各种增加.更新.删除操 ...

  7. oracle主从关系表查询,Oracle 主从表联合查询解决方法

    Oracle 主从表联合查询 表A id   type   name 1    E      AA 2    F 表B id   Aid    name 1    2      BB 2    2   ...

  8. ormlite 多表联合查询

    ormlite 多表联合查询 QueryBuilder shopBrandQueryBuilder = shopBrandDao.queryBuilder(); QueryBuilder shopQu ...

  9. iphone8p百度云认证_探秘百度数据工厂Pingo的多存储后端数据联合查询技术

    作者介绍:张志宏,2013年加入百度大数据部,曾作为核心成员参与百度大数据平台的搭建.目前是百度数据工厂Pingo核心团队的技术负责人. Pingo是来自百度的离线大数据集成开发平台,使用Spark作 ...

  10. mysql联合查询查询语句_mysql 各种联合查询语句

    简单的介绍了各种联合查询语句的用法,有inner join ,join left等多表联合查询,有需要的朋友可以参考一下. INNER JOIN(等值连接) 只返回两个表中联结字段相等的行 LEFT ...

最新文章

  1. 判断一个序列是不是堆的方法
  2. 解压与压缩(把dataset转为string、、 )
  3. 选择排序之——堆排序(c/c++)
  4. 15.verilog可综合语句设计综述
  5. python编程设计_Python程序设计
  6. e.printStackTrace()不是打印吗,还能锁死?
  7. 赠你一只金色的眼 - 富集分析和表达数据可视化
  8. eclipse中使用git回到之前的版本
  9. Python无限播放励志语句
  10. Github操作指南
  11. php中怎么引用js变量_理解下 Go 中的引用是怎么回事
  12. 计算机组成原理期末大纲
  13. YouTube批量下载开源代码汇总
  14. #python “滑动窗口” 处理氨基酸序列
  15. 苹果电脑如何开启文件保险箱功能?
  16. 利用Windows11安卓子系统对APP进行渗透测试
  17. SIP/VoIP之常见的语音问题
  18. TCP FIN扫描探测原理
  19. VirtualAPK 报错: Failed to notify project evaluation listener. > SDK location not found. Define locati
  20. 考试/答题系统的设计思路

热门文章

  1. 分享一款手机最强Python编程神器,用手机运行Python。天秀!
  2. 易企秀12.4 模板编辑无法删除页面问题分析
  3. OpenModelica中的可视化仿真
  4. android 自定义消息,TUIKit Android自定义消息
  5. 基于MinimaxAlpha-Beta剪枝和强化学习的播棋(Mancala)AI
  6. Windows8[Web应用程序项目***已配置为使用IIS。无法访问IIS元数据库,您没有足够的特权访问计算机上的IIS网站]
  7. 虚拟机安装CentOS系统教程(详细)
  8. 【血型】+【星座】准到吓人
  9. pytorch中加入注意力机制(CBAM),以ResNet为例。到底要不要用ImageNet预训练?如何加预训练参数?
  10. 2017互联网寒冬程序员求职随感