mongodb如何实现同库联表查询方法
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍mongodb如何实现同库联表查询方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!注意:这里只对同库联表查询做介绍,跨库联表查询可能在之后也会介绍(因为公司架
千家信息网最后更新 2026年11月02日mongodb如何实现同库联表查询方法
这篇文章主要介绍mongodb如何实现同库联表查询方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
注意:这里只对同库联表查询做介绍,跨库联表查询可能在之后也会介绍(因为公司架构变动,之后可能会联表查询)
我用到的联表查询有两种,一种是mongoose的populate,一种是$lookup
一、populate
populate是使用外键关联子表
例如现在有一张订单表结构(动态外键):
var orderSchema = new mongoose.Schema({ uid: { type: String, required: true }, // 用户id amount: { type: Number, required: true }, oType: { type: Number, required: true }, // 订单类型 status: { type: Number, required: true }, // 订单的状态:1完成 2未完成 3失效})用户表:
var userSchema = new mongoose.Schema({ phone: String, status: String, createdAt: Date, updatedAt: Date})现在我想根据查询order表,并返回对应用户phone字段
order.find().populate({path: 'uid', model: User, select: '_id real_name phone bankcard'}).exec(function(err, order) { // order: { // uid: { // phone: '15626202254', // status: "expand", // createdAt: Date, // updatedAt: Date // }, // amount: 5000, // oType: 2, // 订单类型 // status: 1, // 订单的状态:1完成 2未完成 3失效 // }});这里order表的uid指向了user表的_id字段,当然也可以在新建表的时候定义外键,这里就不细说了
二、$lookup
lookup就是使用aggregate的$lookup属性,直接上官网例子非常好懂
orders表
{ "_id" : 1, "item" : "abc", "price" : 12, "quantity" : 2 }{ "_id" : 2, "item" : "jkl", "price" : 20, "quantity" : 1 }{ "_id" : 3 }inventory表
{ "_id" : 1, "sku" : "abc", description: "product 1", "instock" : 120 }{ "_id" : 2, "sku" : "def", description: "product 2", "instock" : 80 }{ "_id" : 3, "sku" : "ijk", description: "product 3", "instock" : 60 }{ "_id" : 4, "sku" : "jkl", description: "product 4", "instock" : 70 }{ "_id" : 5, "sku": null, description: "Incomplete" }{ "_id" : 6 }db.orders.aggregate([ { $lookup: { from: "inventory", localField: "item", foreignField: "sku", as: "inventory_docs" } }])就是使用order的item字段作为inventory表的查询条件{sku: item},并赋值给inventory_docs字段,但值得注意的是两个字段的类型必须一样(3.5以上貌似可以转,没试过)
以上是"mongodb如何实现同库联表查询方法"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!
查询
字段
订单
用户
类型
方法
内容
就是
状态
篇文章
两个
价值
例子
公司
兴趣
动态
小伙
小伙伴
属性
指向
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
耶加雪菲
什么是科技互联网
互联网和科技技术
互联网科技公司的优势
互联网通讯科技
互联网金融 科技金融
中国 科技 互联网
致聘互联网科技
善班互联网科技有限公司
万达互联网科技
四个字互联网科技公司取名
太原新华互联网科技学校怎么样
广州恒生互联网科技有限
贵州叶脉互联网科技有限公司所属行业
银川新华互联网科技学校联系电话
半导体是互联网高科技吗
风投北京互联网科技
互联网科技接地气
陕西九四连强互联网科技有限公司
美国五大互联网科技公司市值多少
互联网科技股
互联网科技未来
时间互联网络科技
科技与互联网的利与弊
贵州叶脉互联网科技有限公司所属行业
互联网经济与金融科技
苏州铭阳互联网科技有限公司
深圳艾果互联网通讯科技
上海创道互联网络科技有限公司
互联网科技收购价值