// make sure that we don't crash on large nested arrays but correctly do not index them // SERVER-5127, SERVER-5036 function makeNestArr(depth){ if(depth == 1){ return {a : [depth]}; } else{ return {a : [makeNestArr(depth - 1)] }; } } t = db.arrNestTest; t.drop(); t.ensureIndex({a:1}); n = 1; while ( true ) { var before = t.count(); t.insert( { _id : n, a : makeNestArr(n) } ); var after = t.count(); if ( before == after ) break; n++; } assert( n > 30, "not enough n: " + n ); assert.eq( t.count(), t.find( { _id : { $gt : 0 } } ).hint( { a : 1 } ).itcount() );