La documentación de Java es bastante clara, solo está construyendo objetos BSON para que coincidan con sus respectivas contrapartes JSON como se usan en el shell:
BasicDBObject query = new BasicDBObject("_id", 73);
BasicDBObject fields = new BasicDBObject("goals",
new BasicDBObject( "goal", 4));
BasicDBObject update = new BasicDBObject("$pull",fields);
games.update( query, update );