t = db.find4; t.drop(); t.save( { a : 1123 , b : 54332 } ); o = t.find( {} , {} )[0]; assert.eq( 1123 , o.a , "A" ); assert.eq( 54332 , o.b , "B" ); assert( o._id.str , "C" ); o = t.find( {} , { a : 1 } )[0]; assert.eq( 1123 , o.a , "D" ); assert( o._id.str , "E" ); assert( ! o.b , "F" ); o = t.find( {} , { b : 1 } )[0]; assert.eq( 54332 , o.b , "G" ); assert( o._id.str , "H" ); assert( ! o.a , "I" ); t.drop(); t.save( { a : 1 , b : 1 } ); t.save( { a : 2 , b : 2 } ); assert.eq( "1-1,2-2" , t.find().map( function(z){ return z.a + "-" + z.b } ).toString() ); assert.eq( "1-undefined,2-undefined" , t.find( {} , { a : 1 }).map( function(z){ return z.a + "-" + z.b } ).toString() );