static BSONElement extractKeyElementFromMatchable(const MatchableDocument& matchable,
                                                  const StringData& pathStr) {
    ElementPath path;
    path.init(pathStr);
    path.setTraverseNonleafArrays(false);
    path.setTraverseLeafArray(false);

    MatchableDocument::IteratorHolder matchIt(&matchable, &path);
    if (!matchIt->more())
        return BSONElement();

    BSONElement matchEl = matchIt->next().element();
    // We shouldn't have more than one element - we don't expand arrays
    dassert(!matchIt->more());

    return matchEl;
}