zoukankan      html  css  js  c++  java
  • mongodb 3.x 之实用新功能窥看[2] ——使用$lookup做多表关联处理

    mongodb 3.x 之实用新功能窥看[2] ——使用$lookup做多表关联处理

    e.g.

    {
        "aggregate":"order",
        "pipeline":[
            {
                "$lookup":{
                    "from":"order",
                    "localField":"_id",
                    "foreignField":"_id",
                    "as":"order"
                }
            },
            {
                "$lookup":{
                    "from":"slOrder",
                    "localField":"_id",
                    "foreignField":"orderId",
                    "as":"slOrder"
                }
            },
            {
                "$lookup":{
                    "from":"businessOrderAuditing",
                    "localField":"_id",
                    "foreignField":"orderId",
                    "as":"businessOrderAuditing"
                }
            },
            {
                "$lookup":{
                    "from":"businessOrderHandling",
                    "localField":"_id",
                    "foreignField":"orderId",
                    "as":"businessOrderHandling"
                }
            },
            {
                "$match":{
                    "_id":"1200-1200-AQX-201801180004",
                    "slCategory":2,
                    "businessOrderAuditing..businessConfirmInfo.guaranteeHeadBankId":"01005201706291222390007000000",
                    "businessOrderAuditing..businessConfirmInfo.guaranteeBranchBankId":"01005201706291223350009000000",
                    "businessOrderAuditing..businessConfirmInfo.guaranteeSubBankId":"01005201706291224170011000000",
                    "$or":[
                        {
                            "buyers":{
                                "$elemMatch":{
                                    "$and":[
                                        {
                                            "name":"张三"
                                        },
                                        {
                                            "isBorrowMan":1
                                        }
                                    ]
                                }
                            }
                        },
                        {
                            "salers":{
                                "$elemMatch":{
                                    "$and":[
                                        {
                                            "name":"张三"
                                        },
                                        {
                                            "isBorrowMan":1
                                        }
                                    ]
                                }
                            }
                        }
                    ],
                    "slOrder.applyForDate":{
                        "$gte":{
                            "$date":"2017-12-31T16:00:00.000Z"
                        },
                        "$lte":{
                            "$date":"2018-01-24T16:00:00.000Z"
                        }
                    },
                    "businessOrderAuditing.redemptionCheckInfoPol.businessConfirmInfo.guaranteeStatus":{
                        "$exists":true
                    },
                    "businessOrderHandling.sateMentHandlingPol.relieveGuaranteeNodeInfo.relieveState":{
                        "$exists":false
                    }
                }
            },
            {
                "$sort":{
                    "applyForDate":-1
                }
            },
            {
                "$skip":0
            },
            {
                "$limit":10
            }
        ]
    }

    ^_^

  • 相关阅读:
    java实现链队列
    java使用链栈实现迷宫求解
    java使用链栈实现数制转换
    java实现链栈
    java实现顺序栈
    java实现双向循环链表
    java实现循环链表
    java实现单链表
    java实现顺序链表
    Osmocom-BB中cell_log的多种使用姿势
  • 原文地址:https://www.cnblogs.com/gotodsp/p/8000569.html
Copyright © 2011-2022 走看看