MongoDB学习day09--Mongoose aggregate 多表关联查询
Mongodb的aggregate应用之前已经说过了。
可以参考day06
Mongoose的aggregate函数应用
var mongoose=require('./db.js');
var OrderSchema=mongoose.Schema({
  order_id:String,
  uid:Number,
  trade_no:String,
  all_price:Number,
  all_num:Number
})
var OrderModel=mongoose.model('Order',OrderSchema,'order');
OrderModel.aggregate([
{
  $lookup:{
  from:'order_item',
  localField:"order_id",
  foreignField:"order_id",
  as:"item"
  }
}],function(err,docs){
    console.log(docs)
});
/*查询order_item,找出商品名称是酸奶的商品,酸奶这个商品对应的订单的订单号以及订单的总价格*/
var OrderItemModel=require('./model/order_item.js');
var OrderModel=require('./model/order.js');
var mongoose=require('mongoose');
//第一种实现方式
/*
    OrderItemModel.find({"_id":"5b743da92c327f8d1b360546"},function(err,docs){
        // console.log(docs);
        var order_item=JSON.parse(JSON.stringify(docs));
        var order_id=order_item[0].order_id;
        OrderModel.find({"order_id":order_id},function(err,order){
            //    console.log(order);
            order_item[0].order_info=order[0];
            console.log(order_item)
        })
    })
*/
//第二种方式 
//mongoose中获取ObjectId           mongoose.Types.ObjectId
OrderItemModel.aggregate([
    {
      $lookup:
        {
          from: "order",
          localField: "order_id",
          foreignField: "order_id",
          as: "order_info"
        }
   },{
    $match:{_id: mongoose.Types.ObjectId('5b743da92c327f8d1b360546')}
   }
],function(err,docs){
        if(err){
            console.log(err)
            return;
        }
        console.log(JSON.stringify(docs))
})
MongoDB学习day09--Mongoose aggregate 多表关联查询的更多相关文章
- Mongoose 两个表关联查询aggregate 以及 Mongoose中获取ObjectId
		Mongoose 两个表关联查询aggregate 通常两个表关联查询的时候,是一种一对多的关系,比如订单与订单详情就是一对多的关系,一个订单下面有多个商品 数据模拟 首先我们先将数据模拟出来,先选择 ... 
- mongodb操作之使用javaScript实现多表关联查询
		一.数据控制 mongodb操作数据量控制,千万控制好,不要因为操作的数据量过多而导致失败. 演示一下发生此类错误的错误提示: 
- MyBatis学习总结(三)——多表关联查询与动态SQL
		在上一章中我们学习了<MyBatis学习总结(二)——MyBatis核心配置文件与输入输出映射>,这一章主要是介绍一对一关联查询.一对多关联查询与动态SQL等内容. 一.多表关联查询 表与 ... 
- 【转载】salesforce 零基础开发入门学习(四)多表关联下的SOQL以及表字段Data type详解
		salesforce 零基础开发入门学习(四)多表关联下的SOQL以及表字段Data type详解 建立好的数据表在数据库中查看有很多方式,本人目前采用以下两种方式查看数据表. 1.采用schem ... 
- ofbiz学习笔记01--多表关联查询
		不管做什么项目,肯定会用到多表关联查询数据,从网络查询得知ofbiz有三种多表关联查询方法 实现一:Screem.xml 中的 section 里,加 <action>, 加 get-re ... 
- 图解SQL多表关联查询
		图解SQL多表关联查询 网上看了篇文章关于多表连接的,感觉很好,记录下来,以便日后自己学习 内连接 左连接 右连接 全外连接 1. 查两表关联列相等的数据 ... 
- 多表关联查询(ORACLE版)
		前言:这几天学习oracle,把自己对于关联查询的理解,记录下.如有错误请指正! 交叉连接: 交欢连接又称为“笛卡儿积连接”,是两个或多个表之间的无条件连接.一个表中所有的记录与其它表的所有的记录进行 ... 
- oracle02--多表关联查询
		1. 多表(关联)查询 多表查询也称之为关联查询.多表关联查询等,主要是指通过多个表的关联来获取数据的一种方式. 1.1. 多表映射关系 一对多:A表的一行数据,对应B表中的多条.如:一个部门可以对应 ... 
- Mybatis-plus多表关联查询,多表分页查询
		学习plus真的觉得写代码真的越来越舒服了.昨天开始接触吧,只要学会了多表关联查询.plus就能随意搭配使用了. 关于怎么搭建的就自行了去研究了哦.这里直接进入主题. 我用的是springboot+m ... 
随机推荐
- Web服务器安全设置
			Web服务器安全方面一直重视程度不够,是各种网站经常被黑的主要原因.下面笔者总结了一下关于怎样保证Web服务器安全的措施,希望能给那些服务器尚存在漏洞的用户提供一些帮助. 本文主要以Windows s ... 
- liunx中安装软件的几种方式
			服务器安装包一般有四种方式 1.源代码包安装 自由度高 需要预编译,安装速度慢 2.rpm包手动安装 安装的缺点是文件的关联性太大 3. 二进制tar.gz格式 直接解压即可 如tomca ... 
- 原生ajax请求的五个步骤
			//第一步,创建XMLHttpRequest对象 var xmlHttp = new XMLHttpRequest(); function CommentAll() { //第二步,注册回调函数 xm ... 
- this.$refs.tabs.activeKey ref就是vue里面的id
			this.$refs.tabs.activeKey ref就是vue里面的id 
- ORA-03113: end-of-file on  & ORA-07445
			--------------ORA-03113: end-of-file on-------------- SQL> show parameter background_dump; NAME T ... 
- WebSocket 学习笔记
			WebSocket 学习笔记 来自我的博客 因为项目原因需要用到双工通信,所以比较详细的学习了一下浏览器端支持的 WebSocket. 并记录一些遇到的问题. 简介 WebSocket 一般是指浏览器 ... 
- 小程序之Button组件,函数的调用与简单的逻辑
			我们要实现一个简单的功能,在界面上放置一张图片,设置重新加载按钮,能更新图片. WXML代码: <!--index.wxml--> <view clas="index&qu ... 
- Go:sync.Once 实现单例模式
			代码: package main import ( "fmt" "sync" ) type Singleton struct{} var singleton * ... 
- 条款31:将文件间的编译依存关系降至最低(Minimize compilation dependencies between files)
			NOTE1: 1.支持“编译依存性最小化”的一般构想是:相依于声明式,不要相依于定义式.基于此构想的两个手段是Handle classes 和 Interface classes. 2.程序库头文件应 ... 
- 第二章:C++简单程序设计
			主要内容: 1.C++语言概述 2.基本数据类型和表达式 3.数据的输入与输出 4.算法的基本控制结构 5.自定义数据类型 1.数据类型default is double 2.自定义数据类型就是bui ... 
