mongodb 左联结写法

这篇教程探讨如何在MongoDB中使用aggregate函数模拟SQL的左联结操作,涉及$match、$unwind、$project等函数的用法,并通过实例展示了不同类型的左联结查询,包括基础左联结、带where条件的左联结以及带有联结条件的左联结。由于MongoDB不直接支持左联结,文章通过$redact函数的$PRUNE特性来实现类似效果。
摘要由CSDN通过智能技术生成

sql to mongoDB mapping chart 一些比较简单的官方文档例子,已经有的就不再写例子
https://docs.mongodb.com/manual/reference/sql-comparison/

本教程主要是讲aggregate的一些函数实现左联结的用法,用到的函数有
$match,$unwind,$project,$let,$cond,$redact等

准备测试数据

Oracle数据库 初始数据,address/custInfo表:

custInfo

_id nameame age gender
1001 sum 20 F
1002 stone 21 M
1003 kral 22 M
1004 git 22 M

address

_id status custId region homeAdd
1 A 1001 GuangZhou 天河北路
2 A 1001 ShangHai 天河南路
3 A 1002 BeiJing 天安门
4 B 1002 沙河路17号
5 B 1004 GuangZhou 沙河路18号

Mongo数据库 表结构 (假设数据和oracle数据库的数据一样)
custInfo

{
    _id:"1001",
    name:"sum",
    age:20,
    gender:"F",
    address:[
        {
            status:"A",
            region:"GuangZhou",
            homeAdd:"天河北路"
        },
        {
            status:"A",
            region:"ShangHai",
            homeAdd:"天河南路"
        }
    ]
}

练习一:左联结

sql

    select cu._id as custId,cu.name,ad.region,ad.homeAdd,ad.status 
    from custInfo cu
    left
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值