新建两个表,第一个是product表用来存放产品的,第二个是shop表存放产品的类型,两个表之间使用type关联。
在product中插入数据:
db.product.insert({type:1,productName:'西瓜'}) db.product.insert({type:1,productName:'橘子'}) db.product.insert({type:1,productName:'香蕉'}) db.product.insert({type:2,productName:'红牛'}) db.product.insert({type:2,productName:'红茶'}) db.product.insert({type:2,productName:'绿茶'}) db.product.insert({type:3,productName:'蛋糕'}) db.product.insert({type:3,productName:'奶油'}) db.product.insert({type:3,productName:'奶酪'})
在shop表插入数据:
db.shop.insert({type:1,name:'水果'}) db.shop.insert({type:2,name:'饮料'}) db.shop.insert({type:3,name:'甜点'})
product中的type是代表属于什么类型的产品
product表数据如下
shop表数据如下
接下来我们需要根据prodict中的type获得shop中的name(也就是获取产品类型的名字)
db.product.aggregate([ { $lookup:{ from:'shop', localField:'type', foreignField:'type', as:'types' } } ])
查询结果如下:
现在又新增一个需求,统计下各个类型中各有多少个产品
db.product.aggregate([ { $lookup:{ from:'shop', localField:'type', foreignField:'type', as:'types' } }, { $group:{ _id:{type:'$type',name:'$types.name'}, num:{$sum:1} } } ])
查询结果如下:每个类型中各有三个产品
await Order.aggregate([ { $lookup: { from: 'goods', localField: "goodsId", foreignField: 'ID', as: 'goodsInfo' } }, ]).then((res) => { ctx.body = { code: 200, result: res } })
发表评论
侧栏公告
寄语
譬如朝露博客是一个分享前端知识的网站,联系方式11523518。
热评文章
标签列表
热门文章
友情链接