GeoNear2DStage::GeoNear2DStage(const GeoNearParams& nearParams, OperationContext* txn, WorkingSet* workingSet, Collection* collection, IndexDescriptor* twoDIndex) : NearStage(txn, workingSet, collection, new PlanStageStats(CommonStats(kTwoDIndexNearStage.c_str()), STAGE_GEO_NEAR_2D)), _nearParams(nearParams), _twoDIndex(twoDIndex), _fullBounds(twoDDistanceBounds(nearParams, twoDIndex)), _currBounds(_fullBounds.center(), -1, _fullBounds.getInner()), _boundsIncrement(twoDBoundsIncrement(nearParams)) { getNearStats()->keyPattern = twoDIndex->keyPattern(); }
GeoNear2DSphereStage::GeoNear2DSphereStage(const GeoNearParams& nearParams, OperationContext* txn, WorkingSet* workingSet, Collection* collection, IndexDescriptor* s2Index) : NearStage(txn, workingSet, collection, new PlanStageStats(CommonStats(kS2IndexNearStage.c_str()), STAGE_GEO_NEAR_2DSPHERE)), _nearParams(nearParams), _s2Index(s2Index), _fullBounds(geoNearDistanceBounds(nearParams.nearQuery)), _currBounds(_fullBounds.center(), -1, _fullBounds.getInner()), _boundsIncrement(twoDSphereBoundsIncrement(s2Index)) { getNearStats()->keyPattern = s2Index->keyPattern(); }
std::unique_ptr<PlanStageStats> ChangeStreamProxyStage::getStats() { std::unique_ptr<PlanStageStats> ret = std::make_unique<PlanStageStats>(CommonStats(kStageType), STAGE_CHANGE_STREAM_PROXY); ret->specific = std::make_unique<CollectionScanStats>(); return ret; }