- 
    Type:Bug 
- 
    Resolution: Done
- 
    Priority:Major - P3 
- 
    None
- 
    Affects Version/s: 6.0.5
- 
    Component/s: None
- 
    None
- 
        ALL
- 
        None
- 
        None
- 
        None
- 
        None
- 
        None
- 
        None
- 
        None
my server is 6.0.5 cluster.
cluster has two shards.now i use $lookup for two tables.when i want to analyze explain for lookup subpipeline.but all output is 0.
          totalDocsExamined: Long("0"),
          totalKeysExamined: Long("0"),
          collectionScans: Long("0"),
          indexesUsed: [],
[direct: mongos] datacenter> db.order.aggregate([{$match:{createTime: {$gt:ISODate("2023-08-03T00:00:00")}}},{$lookup:{from:"terminal",localField:"waybillNo",foreignField:"waybillNo",as:"output"}},{$match:{output:{$ne:[]}}}]).itcount()
151
[direct: mongos] datacenter>
[direct: mongos] datacenter> db.order.aggregate([{$match:{createTime: {$gt:ISODate("2023-08-03T00:00:00")}}},{$lookup:{from:"terminal",localField:"waybillNo",foreignField:"waybillNo",as:"output"}},{$match:{output:{$ne:[]}}}],{'explain':"executionStats"})
{
  serverInfo: {
    host: 'xxxx',
    port: 31051,
    version: '6.0.5',
    gitVersion: 'c9a99c120371d4d4c52cbb15dac34a36ce8d3b1d'
  },
  serverParameters: {
    internalQueryFacetBufferSizeBytes: 104857600,
    internalQueryFacetMaxOutputDocSizeBytes: 104857600,
    internalLookupStageIntermediateDocumentMaxSizeBytes: 104857600,
    internalDocumentSourceGroupMaxMemoryBytes: 104857600,
    internalQueryMaxBlockingSortMemoryUsageBytes: 104857600,
    internalQueryProhibitBlockingMergeOnMongoS: 0,
    internalQueryMaxAddToSetBytes: 104857600,
    internalDocumentSourceSetWindowFieldsMaxMemoryBytes: 104857600
  },
  mergeType: 'mongos',
  splitPipeline: {
    shardsPart: [
      {
        '$match': { createTime: { '$gt': ISODate("2023-08-03T00:00:00.000Z") } }
      },
      {
        '$lookup': {
          from: 'terminal',
          as: 'output',
          localField: 'waybillNo',
          foreignField: 'waybillNo'
        }
      },
      {
        '$match': { output: { '$not': { '$eq': [] } } }
      }
    ],
    mergerPart: [
      {
        '$mergeCursors': {
          lsid: {
            id: new UUID("a33d7596-2c08-475c-ab61-b188446698f2"),
            uid: Binary(Buffer.from("3b408cb48548b5037822c10eb0976b3cbf2cee3bf9c708796bf03941fbecd80f", "hex"), 0)
          },
          compareWholeSortKey: false,
          tailableMode: 'normal',
          nss: 'datacenter.order',
          allowPartialResults: false,
          recordRemoteOpWaitTime: false
        }
      }
    ]
  },
  shards: {
    shard1: {
      host: 'host1:31001',
      stages: [
        {
          '$cursor': {
            queryPlanner: {
              namespace: 'datacenter.order',
              indexFilterSet: false,
              parsedQuery: {
                createTime: { '$gt': ISODate("2023-08-03T00:00:00.000Z") }
              },
              queryHash: 'BFA14242',
              planCacheKey: '5D24761B',
              maxIndexedOrSolutionsReached: false,
              maxIndexedAndSolutionsReached: false,
              maxScansToExplodeReached: false,
              winningPlan: {
                stage: 'SHARDING_FILTER',
                inputStage: {
                  stage: 'FETCH',
                  inputStage: {
                    stage: 'IXSCAN',
                    keyPattern: { createTime: 1 },
                    indexName: 'createTime_1',
                    isMultiKey: false,
                    multiKeyPaths: { createTime: [] },
                    isUnique: false,
                    isSparse: false,
                    isPartial: false,
                    indexVersion: 2,
                    direction: 'forward',
                    indexBounds: {
                      createTime: [
                        '(new Date(1691020800000), new Date(9223372036854775807)]'
                      ]
                    }
                  }
                }
              },
              rejectedPlans: []
            },
            executionStats: {
              executionSuccess: true,
              nReturned: 317,
              executionTimeMillis: 196,
              totalKeysExamined: 317,
              totalDocsExamined: 317,
              executionStages: {
                stage: 'SHARDING_FILTER',
                nReturned: 317,
                executionTimeMillisEstimate: 0,
                works: 318,
                advanced: 317,
                needTime: 0,
                needYield: 0,
                saveState: 1,
                restoreState: 1,
                isEOF: 1,
                chunkSkips: 0,
                inputStage: {
                  stage: 'FETCH',
                  nReturned: 317,
                  executionTimeMillisEstimate: 0,
                  works: 318,
                  advanced: 317,
                  needTime: 0,
                  needYield: 0,
                  saveState: 1,
                  restoreState: 1,
                  isEOF: 1,
                  docsExamined: 317,
                  alreadyHasObj: 0,
                  inputStage: {
                    stage: 'IXSCAN',
                    nReturned: 317,
                    executionTimeMillisEstimate: 0,
                    works: 318,
                    advanced: 317,
                    needTime: 0,
                    needYield: 0,
                    saveState: 1,
                    restoreState: 1,
                    isEOF: 1,
                    keyPattern: { createTime: 1 },
                    indexName: 'createTime_1',
                    isMultiKey: false,
                    multiKeyPaths: { createTime: [] },
                    isUnique: false,
                    isSparse: false,
                    isPartial: false,
                    indexVersion: 2,
                    direction: 'forward',
                    indexBounds: {
                      createTime: [
                        '(new Date(1691020800000), new Date(9223372036854775807)]'
                      ]
                    },
                    keysExamined: 317,
                    seeks: 1,
                    dupsTested: 0,
                    dupsDropped: 0
                  }
                }
              }
            }
          },
          nReturned: Long("317"),
          executionTimeMillisEstimate: Long("0")
        },
        {
          '$lookup': {
            from: 'terminal',
            as: 'output',
            localField: 'waybillNo',
            foreignField: 'waybillNo'
          },
          totalDocsExamined: Long("0"),
          totalKeysExamined: Long("0"),
          collectionScans: Long("0"),
          indexesUsed: [],
          nReturned: Long("317"),
          executionTimeMillisEstimate: Long("195")
        },
        {
          '$match': { output: { '$not': { '$eq': [] } } },
          nReturned: Long("0"),
          executionTimeMillisEstimate: Long("195")
        }
      ]
    },
    shard2: {
      host: 'host2:31002',
      stages: [
        {
          '$cursor': {
            queryPlanner: {
              namespace: 'datacenter.order',
              indexFilterSet: false,
              parsedQuery: {
                createTime: { '$gt': ISODate("2023-08-03T00:00:00.000Z") }
              },
              queryHash: 'BFA14242',
              planCacheKey: '5D24761B',
              maxIndexedOrSolutionsReached: false,
              maxIndexedAndSolutionsReached: false,
              maxScansToExplodeReached: false,
              winningPlan: {
                stage: 'SHARDING_FILTER',
                inputStage: {
                  stage: 'FETCH',
                  inputStage: {
                    stage: 'IXSCAN',
                    keyPattern: { createTime: 1 },
                    indexName: 'createTime_1',
                    isMultiKey: false,
                    multiKeyPaths: { createTime: [] },
                    isUnique: false,
                    isSparse: false,
                    isPartial: false,
                    indexVersion: 2,
                    direction: 'forward',
                    indexBounds: {
                      createTime: [
                        '(new Date(1691020800000), new Date(9223372036854775807)]'
                      ]
                    }
                  }
                }
              },
              rejectedPlans: []
            },
            executionStats: {
              executionSuccess: true,
              nReturned: 736,
              executionTimeMillis: 420,
              totalKeysExamined: 736,
              totalDocsExamined: 736,
              executionStages: {
                stage: 'SHARDING_FILTER',
                nReturned: 736,
                executionTimeMillisEstimate: 7,
                works: 737,
                advanced: 736,
                needTime: 0,
                needYield: 0,
                saveState: 1,
                restoreState: 1,
                isEOF: 1,
                chunkSkips: 0,
                inputStage: {
                  stage: 'FETCH',
                  nReturned: 736,
                  executionTimeMillisEstimate: 5,
                  works: 737,
                  advanced: 736,
                  needTime: 0,
                  needYield: 0,
                  saveState: 1,
                  restoreState: 1,
                  isEOF: 1,
                  docsExamined: 736,
                  alreadyHasObj: 0,
                  inputStage: {
                    stage: 'IXSCAN',
                    nReturned: 736,
                    executionTimeMillisEstimate: 4,
                    works: 737,
                    advanced: 736,
                    needTime: 0,
                    needYield: 0,
                    saveState: 1,
                    restoreState: 1,
                    isEOF: 1,
                    keyPattern: { createTime: 1 },
                    indexName: 'createTime_1',
                    isMultiKey: false,
                    multiKeyPaths: { createTime: [] },
                    isUnique: false,
                    isSparse: false,
                    isPartial: false,
                    indexVersion: 2,
                    direction: 'forward',
                    indexBounds: {
                      createTime: [
                        '(new Date(1691020800000), new Date(9223372036854775807)]'
                      ]
                    },
                    keysExamined: 736,
                    seeks: 1,
                    dupsTested: 0,
                    dupsDropped: 0
                  }
                }
              }
            }
          },
          nReturned: Long("736"),
          executionTimeMillisEstimate: Long("7")
        },
        {
          '$lookup': {
            from: 'terminal',
            as: 'output',
            localField: 'waybillNo',
            foreignField: 'waybillNo'
          },
          totalDocsExamined: Long("0"),
          totalKeysExamined: Long("0"),
          collectionScans: Long("0"),
          indexesUsed: [],
          nReturned: Long("736"),
          executionTimeMillisEstimate: Long("420")
        },
        {
          '$match': { output: { '$not': { '$eq': [] } } },
          nReturned: Long("0"),
          executionTimeMillisEstimate: Long("420")
        }
      ]
    }
  },
  command: {
    aggregate: 'order',
    pipeline: [
      {
        '$match': { createTime: { '$gt': ISODate("2023-08-03T00:00:00.000Z") } }
      },
      {
        '$lookup': {
          from: 'terminal',
          localField: 'waybillNo',
          foreignField: 'waybillNo',
          as: 'output'
        }
      },
      { '$match': { output: { '$ne': [] } } }
    ],
    cursor: {}
  },
  ok: 1,
  '$clusterTime': {
    clusterTime: Timestamp({ t: 1691112367, i: 1 }),
    signature: {
      hash: Binary(Buffer.from("2460b999b760d306c2ce2357b7ed59596a224ca6", "hex"), 0),
      keyId: Long("7225447387848769561")
    }
  },
  operationTime: Timestamp({ t: 1691112367, i: 1 })
}
- related to
- 
                    SERVER-112893 $lookup explain reports runtime stats in a misleading way when targeting multiple shards on the inner side -         
- Needs Scheduling
 
-