Mongoose 聚合管道
定义
Schema
-
const OrderSchema = mongoose.Schema({ order_id: String, uid: Number, trade_no: String, all_price: Number, all_num: Number })
-
const OrderItemSchema = mongoose.Schema({ order_item: String, title: String, price: Number, num: Number })
聚合管道
-
const OrderModel = require('./model/order') OrderModel.aggregate([ { $lookup: { // 关联查询 from: 'order_item', // 关联数据库中 order_item 文档 foreignField: 'order_id', // 关联order_item 文档中的 order_id 字段 localField: 'order_id', // order 文档中的 order_id 字段 as: 'items', // 将查询的数据放至 items 字段中 } } ], function (err, docs) { if (err) { console.log('查询失败', err) return } console.log('查询成功', docs) })
根据订单文档查询相关商品信息
-
const OrderItemModel = require('./model/order_item') OrderItemModel.aggregate([ { $lookup: { from: 'order', foreignField: 'order_id', localField: 'order_id', as: 'items' } } ], function (err, docs) { if (err) { console.log('查询失败', err) return } console.log('查询成功', JSON.stringify(docs)) })
根据查询商品文档查询订单号信息
-
const mongoose = require('./model/db') const OrderItemModel = require('./model/order_item') OrderItemModel.aggregate([ { $lookup: { from: 'order', foreignField: 'order_id', localField: 'order_id', as: 'order_info' } }, { $match: { "_id": mongoose.Types.ObjectId('62981507e47cc586d63d6056') // 转成 ObjectId } } ], function (err, docs) { if (err) { console.log('查询失败', err) return } console.log(docs[0]) })
查找牛奶商品对应的订单

浙公网安备 33010602011771号