Document DocumentSourceBsonArray::getCurrent() { verify(haveCurrent); BSONObj documentObj(currentElement.Obj()); Document pDocument( Document::createFromBsonObj(&documentObj)); return pDocument; }
void DocumentSourceCursor::findNext() { /* standard cursor usage pattern */ while(pCursor->ok()) { CoveredIndexMatcher *pCIM; // save intermediate result if ((!(pCIM = pCursor->matcher()) || pCIM->matchesCurrent(pCursor.get())) && !pCursor->getsetdup(pCursor->currLoc())) { /* grab the matching document */ BSONObj documentObj(pCursor->current()); pCurrent = Document::createFromBsonObj(&documentObj); pCursor->advance(); return; } pCursor->advance(); } /* if we got here, there aren't any more documents */ pCurrent.reset(); }