python实现对mongodb数据库进行多表联合查询 lookup

1,047 阅读1分钟

参考资料:

https://www.cnblogs.com/lgh344902118/p/8656266.html

https://www.cnblogs.com/xuliuzai/p/10055535.html

# MongoDB官方文档
https://docs.mongodb.com
https://docs.mongodb.com/manual/reference/operator/aggregation/

lookup联合查询


user_faceswap_col = mydb["user_faceswap_col"]
# 当前表A
result = user_faceswap_col.aggregate(
    [
        {
            '$lookup':
                {
                    "from": "all_faceswap_col",  # 需要联合查询的另一张表B
                    "localField": "face_id",  # 表A的字段
                    "foreignField": "face_id",  # 表B的字段
                    "as": "face_docs"  # 根据A、B联合生成的新字段名
                },
        },
        {
            '$project':  # 联合查询后需要显示哪些字段,0:不显示
                {
                    'face_docs._id': 0,
                    '_id': 0,
                },

        },
        {
            '$match': {
                            'user_id': '1001'
                      },  # 根据哪些条件进行查询
        },
        {
            '$sort': {"create_time": 1}  # 按照添加的时间升序排列
        }
    ]
)