龙空技术网

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

上善若水而不辞 131

前言:

目前同学们对“pythonlookup函数”大约比较重视,小伙伴们都想要分析一些“pythonlookup函数”的相关知识。那么小编同时在网络上收集了一些有关“pythonlookup函数””的相关资讯,希望兄弟们能喜欢,同学们快快来学习一下吧!

可能是因为mongodb数据库不是关系型数据库,大家对于它的关系也用不到那么多。

表字段定义

mycol_case_collection = mydb["case_collection"] #表A

mycol_task_collection = mydb["task_collection"] #表B

A:

mylist_case_collection = [

{"user_id": "yu", "case_id": "1", "case_name": "案件名1","task_id": ["10000", "10001"]}

]

B:

mylist_task_collection = [

{"task_id": "10000","task_type": "1", "task_name": "任务名1-1","create_time": "2019-8-26 15:30:22"}

]

对于两张表中的task_id字段进行联合查询

lookup联合查询

mycol_case_collection = mydb["case_collection"] #当前表Aresult = mycol_case_collection.aggregate(    [        {            '$lookup':                {                    "from": "task_collection", #需要联合查询的另一张表B                    "localField": "task_id",   #表A的字段                    "foreignField": "task_id", #表B的字段                    "as": "task_docs"          #根据A、B联合生成的新字段名                },        },        {            '$project':                        #联合查询后需要显示哪些字段,1:显示                {                    'task_docs.task_id':1,                    'task_docs.task_name':1,                    'task_docs.task_type':1,                    'task_docs.evidence_content':1,                    'case_id':1,                    'task_id':1,                    'user_id':1,                    '_id':0,                },         },        {            '$match':                           #根据哪些条件进行查询                {                    "user_id" : name            #这里是根据表A中 user_id == name                 }        }    ])

标签: #pythonlookup函数