MongoDB多表关联查询

本文展示了如何在MongoDB中进行多表关联查询,包括使用$lookup、$unwind等聚合操作,查询涉及到chpz_order、chpz_car_requirement、chpz_requirement_match、chpz_car及chpz_user等多个集合,主要用于订单状态筛选和计数。
摘要由CSDN通过智能技术生成
<template id="chpz_order_searchOrderListByOrderState"><![CDATA[
		{
			$match: {
				requirement_type:"car",
				"$or" : [ { "from_user_id" : "${user_id}"} , { "shr_user_id" : "${user_id}"},{ "to_user_id" : "${user_id}"}],
				 #if(order_state =='order_state_create')
		 			order_state:"order_state_create",
		  		 #end
		  		 #if(order_state =='order_state_wait_transport')
		  		 	#if(user_type =='201' || user_type =='301'||user_type =='302')
		 				order_state:{$in:["order_state_wait_transport","order_state_create"]},
		  		 	#else
		  		 		order_state:"order_state_wait_transport",
		  		 	#end
		  		 #end
		  		 #if(order_state =='order_state_in_transport')
		 			order_state:"order_state_in_transport",
		  		 #end
				 #if(order_state =='order_state_finish')
		 			order_state:{$in:["order_state_received_end","order_state_already_evaluate","order_state_already_cancle"]}
		  		 #end
			}
		}
		--split--marker--
    	{
	      $sort: {
	        "create_time":-1
	      }
	    }
		--split--marker--
		{
			$skip: ${skip}
		}
		--split--marker--
		{
			$limit: ${limit}
		}
		--split--marker--
		{
			$lookup: {
			    "from" : "chpz_car_requirement",
			    "localField" : "requirement_id",
			    "foreignField" : "id",
			    "as" : "carRequirement"
			}
		}
		--split--marker--
		{
			$unwind: {
			    path : "$carRequirement",
			    preserveNullAndEmptyArrays : true
			}
		}
		--split--marker--
		{
			$lookup: {
			    "from" : "chpz_requirement_match",
			    "localField" : "requirement_match_
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值