本文整理汇总了C++中AndMatchExpression::numChildren方法的典型用法代码示例。如果您正苦于以下问题:C++ AndMatchExpression::numChildren方法的具体用法?C++ AndMatchExpression::numChildren怎么用?C++ AndMatchExpression::numChildren使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类AndMatchExpression
的用法示例。
在下文中一共展示了AndMatchExpression::numChildren方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: _parseElemMatch
StatusWithMatchExpression MatchExpressionParser::_parseElemMatch( const char* name,
const BSONElement& e ) {
if ( e.type() != Object )
return StatusWithMatchExpression( ErrorCodes::BadValue, "$elemMatch needs an Object" );
BSONObj obj = e.Obj();
if ( _isExpressionDocument( e ) ) {
// value case
AndMatchExpression theAnd;
Status s = _parseSub( "", obj, &theAnd );
if ( !s.isOK() )
return StatusWithMatchExpression( s );
std::auto_ptr<ElemMatchValueMatchExpression> temp( new ElemMatchValueMatchExpression() );
s = temp->init( name );
if ( !s.isOK() )
return StatusWithMatchExpression( s );
for ( size_t i = 0; i < theAnd.numChildren(); i++ ) {
temp->add( theAnd.getChild( i ) );
}
theAnd.clearAndRelease();
return StatusWithMatchExpression( temp.release() );
}
// object case
StatusWithMatchExpression sub = _parse( obj, false );
if ( !sub.isOK() )
return sub;
std::auto_ptr<ElemMatchObjectMatchExpression> temp( new ElemMatchObjectMatchExpression() );
Status status = temp->init( name, sub.getValue() );
if ( !status.isOK() )
return StatusWithMatchExpression( status );
return StatusWithMatchExpression( temp.release() );
}