
t = db.pullall2
t.drop()

o = { _id : 1 , a : [] }
for ( i=0; i<5; i++ )
    o.a.push( { x : i , y : i } )

t.insert( o )

assert.eq( o , t.findOne() , "A" );

t.update( {} , { $pull : { a : { x : 3 } } } )
o.a = o.a.filter( function(z){ return z.x != 3 } )
assert.eq( o , t.findOne() , "B" );

t.update( {} , { $pull : { a : { x : { $in : [ 1 , 4 ] } } } } );
o.a = o.a.filter( function(z){ return z.x != 1 } )
o.a = o.a.filter( function(z){ return z.x != 4 } )
assert.eq( o , t.findOne() , "C" );
